From 5132f4fc4c416b63378c43337ed2739e817474df Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Tue, 15 Mar 2022 16:52:53 +0100 Subject: [PATCH 01/43] add gsmmodem module to project --- gsmmodem/__init__.py | 17 + gsmmodem/compat.py | 22 + gsmmodem/exceptions.py | 134 +++ gsmmodem/gprs.py | 96 +++ gsmmodem/modem.py | 1750 ++++++++++++++++++++++++++++++++++++++ gsmmodem/pdu.py | 958 +++++++++++++++++++++ gsmmodem/serial_comms.py | 147 ++++ gsmmodem/util.py | 130 +++ 8 files changed, 3254 insertions(+) create mode 100644 gsmmodem/__init__.py create mode 100644 gsmmodem/compat.py create mode 100644 gsmmodem/exceptions.py create mode 100644 gsmmodem/gprs.py create mode 100644 gsmmodem/modem.py create mode 100644 gsmmodem/pdu.py create mode 100644 gsmmodem/serial_comms.py create mode 100644 gsmmodem/util.py diff --git a/gsmmodem/__init__.py b/gsmmodem/__init__.py new file mode 100644 index 0000000..9b65886 --- /dev/null +++ b/gsmmodem/__init__.py @@ -0,0 +1,17 @@ +""" Package that allows easy control of an attached GSM modem + +The main class for controlling a modem is GsmModem, which can be imported +directly from this module. + +Other important and useful classes are: +gsmmodem.modem.IncomingCall: wraps an incoming call and passed to the incoming call hanndler callback function +gsmmodem.modem.ReceivedSms: wraps a received SMS message and passed to the sms received hanndler callback function +gsmmodem.modem.SentSms: returned when sending SMS messages; used for tracking the status of the SMS message + +All python-gsmmodem-specific exceptions are defined in the gsmmodem.modem.exceptions package. + +@author: Francois Aucamp +@license: LGPLv3+ +""" + +from .modem import GsmModem diff --git a/gsmmodem/compat.py b/gsmmodem/compat.py new file mode 100644 index 0000000..46d53ea --- /dev/null +++ b/gsmmodem/compat.py @@ -0,0 +1,22 @@ +""" Contains monkey-patched equivalents for a few commonly-used Python 2.7-and-higher functions. +Used to provide backwards-compatibility with Python 2.6 +""" +import sys +if sys.version_info[0] == 2 and sys.version_info[1] < 7: + import threading + + # threading.Event.wait() always returns None in Python < 2.7 so we need to patch it + if hasattr(threading, '_Event'): # threading.Event is a function that return threading._Event + # This is heavily Python-implementation-specific, so patch where we can, otherwise leave it + def wrapWait(func): + def newWait(self, timeout=None): + func(self, timeout) + return self.is_set() + return newWait + threading._Event.wait = wrapWait(threading._Event.wait) + else: + raise ImportError('Could not patch this version of Python 2.{0} for compatibility with python-gsmmodem.'.format(sys.version_info[1])) +if sys.version_info[0] == 2: + str = str +else: + str = lambda x: x \ No newline at end of file diff --git a/gsmmodem/exceptions.py b/gsmmodem/exceptions.py new file mode 100644 index 0000000..6882524 --- /dev/null +++ b/gsmmodem/exceptions.py @@ -0,0 +1,134 @@ +""" Module defines exceptions used by gsmmodem """ + +class GsmModemException(Exception): + """ Base exception raised for error conditions when interacting with the GSM modem """ + + +class TimeoutException(GsmModemException): + """ Raised when a write command times out """ + + def __init__(self, data=None): + """ @param data: Any data that was read was read before timeout occurred (if applicable) """ + super(TimeoutException, self).__init__(data) + self.data = data + + +class InvalidStateException(GsmModemException): + """ Raised when an API method call is invoked on an object that is in an incorrect state """ + + +class InterruptedException(InvalidStateException): + """ Raised when execution of an AT command is interrupt by a state change. + May contain another exception that was the cause of the interruption """ + + def __init__(self, message, cause=None): + """ @param cause: the exception that caused this interruption (usually a CmeError) """ + super(InterruptedException, self).__init__(message) + self.cause = cause + + +class CommandError(GsmModemException): + """ Raised if the modem returns an error in response to an AT command + + May optionally include an error type (CME or CMS) and -code (error-specific). + """ + + _description = '' + + def __init__(self, command=None, type=None, code=None): + self.command = command + self.type = type + self.code = code + if type != None and code != None: + super(CommandError, self).__init__('{0} {1}{2}'.format(type, code, ' ({0})'.format(self._description) if len(self._description) > 0 else '')) + elif command != None: + super(CommandError, self).__init__(command) + else: + super(CommandError, self).__init__() + + +class CmeError(CommandError): + """ ME error result code : +CME ERROR: + + Issued in response to an AT command + """ + + def __new__(cls, *args, **kwargs): + # Return a specialized version of this class if possible + if len(args) >= 2: + code = args[1] + if code == 11: + return PinRequiredError(args[0]) + elif code == 16: + return IncorrectPinError(args[0]) + elif code == 12: + return PukRequiredError(args[0]) + return super(CmeError, cls).__new__(cls, *args, **kwargs) + + def __init__(self, command, code): + super(CmeError, self).__init__(command, 'CME', code) + + +class SecurityException(CmeError): + """ Security-related CME error """ + + def __init__(self, command, code): + super(SecurityException, self).__init__(command, code) + + +class PinRequiredError(SecurityException): + """ Raised if an operation failed because the SIM card's PIN has not been entered """ + + _description = 'SIM card PIN is required' + + def __init__(self, command, code=11): + super(PinRequiredError, self).__init__(command, code) + + +class IncorrectPinError(SecurityException): + """ Raised if an incorrect PIN is entered """ + + _description = 'Incorrect PIN entered' + + def __init__(self, command, code=16): + super(IncorrectPinError, self).__init__(command, code) + + +class PukRequiredError(SecurityException): + """ Raised an operation failed because the SIM card's PUK is required (SIM locked) """ + + _description = "PUK required (SIM locked)" + + def __init__(self, command, code=12): + super(PukRequiredError, self).__init__(command, code) + + +class CmsError(CommandError): + """ Message service failure result code: +CMS ERROR : + + Issued in response to an AT command + """ + + def __new__(cls, *args, **kwargs): + # Return a specialized version of this class if possible + if len(args) >= 2: + code = args[1] + if code == 330: + return SmscNumberUnknownError(args[0]) + return super(CmsError, cls).__new__(cls, *args, **kwargs) + + def __init__(self, command, code): + super(CmsError, self).__init__(command, 'CMS', code) + + +class SmscNumberUnknownError(CmsError): + """ Raised if the SMSC (service centre) address is missing when trying to send an SMS message """ + + _description = 'SMSC number not set' + + def __init__(self, command, code=330): + super(SmscNumberUnknownError, self).__init__(command, code) + + +class EncodingError(GsmModemException): + """ Raised if a decoding- or encoding operation failed """ diff --git a/gsmmodem/gprs.py b/gsmmodem/gprs.py new file mode 100644 index 0000000..af164f4 --- /dev/null +++ b/gsmmodem/gprs.py @@ -0,0 +1,96 @@ +# -*- coding: utf8 -*- + +""" GPRS/Data-specific classes + +BRANCH: mms + +PLEASE NOTE: *Everything* in this file (PdpContext, GprsModem class, etc) is experimental. +This is NOT meant to be used in production in any way; the API is completely unstable, +no unit tests will be written for this in the forseeable future, and stuff may generally +break and cause riots. Please do not file bug reports against this branch unless you +have a patch to go along with it, but even then: remember that this entire "mms" branch +is exploratory; I simply want to see what the possibilities are with it. + +Use the "main" branch, and the GsmModem class if you want to build normal applications. +""" + +import re + +from .util import allLinesMatchingPattern +from .modem import GsmModem + +class PdpContext(object): + """ Packet Data Protocol (PDP) context parameter values """ + def __init__(self, cid, pdpType, apn, pdpAddress=None, dataCompression=0, headerCompression=0): + """ Construct a new Packet Data Protocol context + + @param cid: PDP Context Identifier - specifies a particular PDP context definition + @type cid: int + @param pdpType: the type of packet data protocol (IP, PPP, IPV6, etc) + @type pdpType: str + @param apn: Access Point Name; logical name used to select the GGSN or external packet data network + @type apn: str + @param pdpAddress: identifies the MT in the address space applicable to the PDP. If None, a dynamic address may be requested. + @type pdpAddress: str + @param dataCompression: PDP data compression; 0 == off, 1 == on + @type dataCompression: int + @param headerCompression: PDP header compression; 0 == off, 1 == on + @type headerCompression: int + """ + self.cid = cid + self.pdpType = pdpType + self.apn = apn + self.pdpAddress = pdpAddress + self.dataCompression = dataCompression + self.headerCompression = headerCompression + + +class GprsModem(GsmModem): + """ EXPERIMENTAL: Specialized version of GsmModem that includes GPRS/data-specific commands """ + + @property + def pdpContexts(self): + """ Currently-defined Packet Data Protocol (PDP) context list + + PDP paramter values returned include PDP type (IP, IPV6, PPP, X.25 etc), APN, + data compression, header compression, etc. + + @return: a list of currently-defined PDP contexts + """ + result = [] + cgdContResult = self.write('AT+CGDCONT?') + matches = allLinesMatchingPattern(re.compile(r'^\+CGDCONT:\s*(\d+),"([^"]+)","([^"]+)","([^"]+)",(\d+),(\d+)'), cgdContResult) + for cgdContMatch in matches: + cid, pdpType, apn, pdpAddress, dataCompression, headerCompression = cgdContMatch.groups() + pdpContext = PdpContext(cid, pdpType, apn, pdpAddress, dataCompression, headerCompression) + result.append(pdpContext) + return result + + @property + def defaultPdpContext(self): + """ @return: the default PDP context, or None if not defined """ + pdpContexts = self.pdpContexts + return pdpContexts[0] if len(pdpContexts) > 0 else None + @defaultPdpContext.setter + def defaultPdpContext(self, pdpContext): + """ Set the default PDP context (or clear it by setting it to None) """ + self.write('AT+CGDCONT=,"{0}","{1}","{2}",{3},{4}'.format(pdpContext.pdpType, pdpContext.apn, pdpContext.pdpAddress or '', pdpContext.dataCompression, pdpContext.headerCompression)) + + def definePdpContext(self, pdpContext): + """ Define a new Packet Data Protocol context, or overwrite an existing one + + @param pdpContext: The PDP context to define + @type pdpContext: gsmmodem.gprs.PdpContext + """ + self.write('AT+CGDCONT={0},"{1}","{2}","{3}",{4},{5}'.format(pdpContext.cid or '', pdpContext.pdpType, pdpContext.apn, pdpContext.pdpAddress or '', pdpContext.dataCompression, pdpContext.headerCompression)) + + def initDataConnection(self, pdpCid=1): + """ Initializes a packet data (GPRS) connection using the specified PDP Context ID """ + # From this point on, we don't want the read thread interfering + #self.log.debug('Stopping read thread') + #self.alive = False + #self.rxThread.join() + self.log.debug('Init data connection') + self.write('ATD*99#', expectedResponseTermSeq="CONNECT\r") + self.log.debug('Data connection open; ready for PPP comms') + # From here on we use PPP to communicate with the network diff --git a/gsmmodem/modem.py b/gsmmodem/modem.py new file mode 100644 index 0000000..a436172 --- /dev/null +++ b/gsmmodem/modem.py @@ -0,0 +1,1750 @@ +#!/usr/bin/env python + +""" High-level API classes for an attached GSM modem """ + +import sys, re, logging, weakref, time, threading, abc, codecs +from datetime import datetime +from time import sleep + +from .serial_comms import SerialComms +from .exceptions import CommandError, InvalidStateException, CmeError, CmsError, InterruptedException, TimeoutException, PinRequiredError, IncorrectPinError, SmscNumberUnknownError +from .pdu import encodeSmsSubmitPdu, decodeSmsPdu, encodeGsm7, encodeTextMode +from .util import SimpleOffsetTzInfo, lineStartingWith, allLinesMatchingPattern, parseTextModeTimeStr, removeAtPrefix + +#from . import compat # For Python 2.6 compatibility +from gsmmodem.util import lineMatching +from gsmmodem.exceptions import EncodingError +PYTHON_VERSION = sys.version_info[0] + +CTRLZ = '\x1a' +TERMINATOR = '\r' + +if PYTHON_VERSION >= 3: + xrange = range + dictValuesIter = dict.values + dictItemsIter = dict.items +else: #pragma: no cover + dictValuesIter = dict.itervalues + dictItemsIter = dict.iteritems + + +class Sms(object): + """ Abstract SMS message base class """ + __metaclass__ = abc.ABCMeta + + # Some constants to ease handling SMS statuses + STATUS_RECEIVED_UNREAD = 0 + STATUS_RECEIVED_READ = 1 + STATUS_STORED_UNSENT = 2 + STATUS_STORED_SENT = 3 + STATUS_ALL = 4 + # ...and a handy converter for text mode statuses + TEXT_MODE_STATUS_MAP = {'REC UNREAD': STATUS_RECEIVED_UNREAD, + 'REC READ': STATUS_RECEIVED_READ, + 'STO UNSENT': STATUS_STORED_UNSENT, + 'STO SENT': STATUS_STORED_SENT, + 'ALL': STATUS_ALL} + + def __init__(self, number, text, smsc=None): + self.number = number + self.text = text + self.smsc = smsc + + +class ReceivedSms(Sms): + """ An SMS message that has been received (MT) """ + + def __init__(self, gsmModem, status, number, time, text, smsc=None, udh=[], index=None): + super(ReceivedSms, self).__init__(number, text, smsc) + self._gsmModem = weakref.proxy(gsmModem) + self.status = status + self.time = time + self.udh = udh + self.index = index + + def reply(self, message): + """ Convenience method that sends a reply SMS to the sender of this message """ + return self._gsmModem.sendSms(self.number, message) + + def sendSms(self, dnumber, message): + """ Convenience method that sends a SMS to someone else """ + return self._gsmModem.sendSms(dnumber, message) + + def getModem(self): + """ Convenience method that returns the gsm modem instance """ + return self._gsmModem + +class SentSms(Sms): + """ An SMS message that has been sent (MO) """ + + ENROUTE = 0 # Status indicating message is still enroute to destination + DELIVERED = 1 # Status indicating message has been received by destination handset + FAILED = 2 # Status indicating message delivery has failed + + def __init__(self, number, text, reference, smsc=None): + super(SentSms, self).__init__(number, text, smsc) + self.report = None # Status report for this SMS (StatusReport object) + self.reference = reference + + @property + def status(self): + """ Status of this SMS. Can be ENROUTE, DELIVERED or FAILED + + The actual status report object may be accessed via the 'report' attribute + if status is 'DELIVERED' or 'FAILED' + """ + if self.report == None: + return SentSms.ENROUTE + else: + return SentSms.DELIVERED if self.report.deliveryStatus == StatusReport.DELIVERED else SentSms.FAILED + + +class StatusReport(Sms): + """ An SMS status/delivery report + + Note: the 'status' attribute of this class refers to this status report SM's status (whether + it has been read, etc). To find the status of the message that caused this status report, + use the 'deliveryStatus' attribute. + """ + + DELIVERED = 0 # SMS delivery status: delivery successful + FAILED = 68 # SMS delivery status: delivery failed + + def __init__(self, gsmModem, status, reference, number, timeSent, timeFinalized, deliveryStatus, smsc=None): + super(StatusReport, self).__init__(number, None, smsc) + self._gsmModem = weakref.proxy(gsmModem) + self.status = status + self.reference = reference + self.timeSent = timeSent + self.timeFinalized = timeFinalized + self.deliveryStatus = deliveryStatus + + +class GsmModem(SerialComms): + """ Main class for interacting with an attached GSM modem """ + + log = logging.getLogger('gsmmodem.modem.GsmModem') + + # Used for parsing AT command errors + CM_ERROR_REGEX = re.compile('^\+(CM[ES]) ERROR: (\d+)$') + # Used for parsing signal strength query responses + CSQ_REGEX = re.compile('^\+CSQ:\s*(\d+),') + # Used for parsing caller ID announcements for incoming calls. Group 1 is the number + CLIP_REGEX = re.compile('^\+CLIP:\s*"\+{0,1}(\d+)",(\d+).*$') + # Used for parsing own number. Group 1 is the number + CNUM_REGEX = re.compile('^\+CNUM:\s*".*?","(\+{0,1}\d+)",(\d+).*$') + # Used for parsing new SMS message indications + CMTI_REGEX = re.compile('^\+CMTI:\s*"([^"]+)",\s*(\d+)$') + # Used for parsing SMS message reads (text mode) + CMGR_SM_DELIVER_REGEX_TEXT = None + # Used for parsing SMS status report message reads (text mode) + CMGR_SM_REPORT_REGEXT_TEXT = None + # Used for parsing SMS message reads (PDU mode) + CMGR_REGEX_PDU = None + # Used for parsing USSD event notifications + CUSD_REGEX = re.compile('\+CUSD:\s*(\d),\s*"(.*?)",\s*(\d+)', re.DOTALL) + # Used for parsing SMS status reports + CDSI_REGEX = re.compile('\+CDSI:\s*"([^"]+)",(\d+)$') + CDS_REGEX = re.compile('\+CDS:\s*([0-9]+)"$') + + def __init__(self, port, baudrate=115200, incomingCallCallbackFunc=None, smsReceivedCallbackFunc=None, smsStatusReportCallback=None, requestDelivery=True, AT_CNMI="", *a, **kw): + super(GsmModem, self).__init__(port, baudrate, notifyCallbackFunc=self._handleModemNotification, *a, **kw) + self.incomingCallCallback = incomingCallCallbackFunc or self._placeholderCallback + self.smsReceivedCallback = smsReceivedCallbackFunc or self._placeholderCallback + self.smsStatusReportCallback = smsStatusReportCallback or self._placeholderCallback + self.requestDelivery = requestDelivery + self.AT_CNMI = AT_CNMI or "2,1,0,2" + # Flag indicating whether caller ID for incoming call notification has been set up + self._callingLineIdentification = False + # Flag indicating whether incoming call notifications have extended information + self._extendedIncomingCallIndication = False + # Current active calls (ringing and/or answered), key is the unique call ID (not the remote number) + self.activeCalls = {} + # Dict containing sent SMS messages (for auto-tracking their delivery status) + self.sentSms = weakref.WeakValueDictionary() + self._ussdSessionEvent = None # threading.Event + self._ussdResponse = None # gsmmodem.modem.Ussd + self._smsStatusReportEvent = None # threading.Event + self._dialEvent = None # threading.Event + self._dialResponse = None # gsmmodem.modem.Call + self._waitForAtdResponse = True # Flag that controls if we should wait for an immediate response to ATD, or not + self._waitForCallInitUpdate = True # Flag that controls if we should wait for a ATD "call initiated" message + self._callStatusUpdates = [] # populated during connect() - contains regexes and handlers for detecting/handling call status updates + self._mustPollCallStatus = False # whether or not the modem must be polled for outgoing call status updates + self._pollCallStatusRegex = None # Regular expression used when polling outgoing call status + self._writeWait = 0 # Time (in seconds to wait after writing a command (adjusted when 515 errors are detected) + self._smsTextMode = False # Storage variable for the smsTextMode property + self._gsmBusy = 0 # Storage variable for the GSMBUSY property + self._smscNumber = None # Default SMSC number + self._smsRef = 0 # Sent SMS reference counter + self._smsMemReadDelete = None # Preferred message storage memory for reads/deletes ( parameter used for +CPMS) + self._smsMemWrite = None # Preferred message storage memory for writes ( parameter used for +CPMS) + self._smsReadSupported = True # Whether or not reading SMS messages is supported via AT commands + self._smsEncoding = 'GSM' # Default SMS encoding + self._smsSupportedEncodingNames = None # List of available encoding names + self._commands = None # List of supported AT commands + #Pool of detected DTMF + self.dtmfpool = [] + + def connect(self, pin=None, waitingForModemToStartInSeconds=0): + """ Opens the port and initializes the modem and SIM card + + :param pin: The SIM card PIN code, if any + :type pin: str + + :raise PinRequiredError: if the SIM card requires a PIN but none was provided + :raise IncorrectPinError: if the specified PIN is incorrect + """ + self.log.info('Connecting to modem on port %s at %dbps', self.port, self.baudrate) + super(GsmModem, self).connect() + + if waitingForModemToStartInSeconds > 0: + while waitingForModemToStartInSeconds > 0: + try: + self.write('AT', waitForResponse=True, timeout=0.5) + break + except TimeoutException: + waitingForModemToStartInSeconds -= 0.5 + + # Send some initialization commands to the modem + try: + self.write('ATZ') # reset configuration + except CommandError: + # Some modems require a SIM PIN at this stage already; unlock it now + # Attempt to enable detailed error messages (to catch incorrect PIN error) + # but ignore if it fails + self.write('AT+CMEE=1', parseError=False) + self._unlockSim(pin) + pinCheckComplete = True + self.write('ATZ') # reset configuration + else: + pinCheckComplete = False + self.write('ATE0') # echo off + try: + cfun = lineStartingWith('+CFUN:', self.write('AT+CFUN?'))[7:] # example response: +CFUN: 1 or +CFUN: 1,0 + cfun = int(cfun.split(",")[0]) + if cfun != 1: + self.write('AT+CFUN=1') + except CommandError: + pass # just ignore if the +CFUN command isn't supported + + self.write('AT+CMEE=1') # enable detailed error messages (even if it has already been set - ATZ may reset this) + if not pinCheckComplete: + self._unlockSim(pin) + + # Get list of supported commands from modem + commands = self.supportedCommands + self._commands = commands + + # Device-specific settings + callUpdateTableHint = 0 # unknown modem + enableWind = False + if commands != None: + if '^CVOICE' in commands: + self.write('AT^CVOICE=0', parseError=False) # Enable voice calls + if '+VTS' in commands: # Check for DTMF sending support + Call.dtmfSupport = True + elif '^DTMF' in commands: + # Huawei modems use ^DTMF to send DTMF tones + callUpdateTableHint = 1 # Huawei + if '^USSDMODE' in commands: + # Enable Huawei text-mode USSD + self.write('AT^USSDMODE=0', parseError=False) + if '+WIND' in commands: + callUpdateTableHint = 2 # Wavecom + enableWind = True + elif '+ZPAS' in commands: + callUpdateTableHint = 3 # ZTE + else: + # Try to enable general notifications on Wavecom-like device + enableWind = True + + if enableWind: + try: + wind = lineStartingWith('+WIND:', self.write('AT+WIND?')) # Check current WIND value; example response: +WIND: 63 + except CommandError: + # Modem does not support +WIND notifications. See if we can detect other known call update notifications + pass + else: + # Enable notifications for call setup, hangup, etc + # if int(wind[7:]) != 50: + # self.write('AT+WIND=50') + callUpdateTableHint = 2 # Wavecom + + # Attempt to identify modem type directly (if not already) - for outgoing call status updates + if callUpdateTableHint == 0: + if 'simcom' in self.manufacturer.lower() : #simcom modems support DTMF and don't support AT+CLAC + Call.dtmfSupport = True + try: + self.write('AT+DDET=1') # enable detect incoming DTMF + except CommandError: + # simcom 7000E for example doesn't support the DDET command + Call.dtmfSupport = False + + if self.manufacturer.lower() == 'huawei': + callUpdateTableHint = 1 # huawei + else: + # See if this is a ZTE modem that has not yet been identified based on supported commands + try: + self.write('AT+ZPAS?') + except CommandError: + pass # Not a ZTE modem + else: + callUpdateTableHint = 3 # ZTE + # Load outgoing call status updates based on identified modem features + if callUpdateTableHint == 1: + # Use Hauwei's ^NOTIFICATIONs + self.log.info('Loading Huawei call state update table') + self._callStatusUpdates = ((re.compile('^\^ORIG:(\d),(\d)$'), self._handleCallInitiated), + (re.compile('^\^CONN:(\d),(\d)$'), self._handleCallAnswered), + (re.compile('^\^CEND:(\d),(\d+),(\d)+,(\d)+$'), self._handleCallEnded)) + self._mustPollCallStatus = False + # Huawei modems use ^DTMF to send DTMF tones; use that instead + Call.DTMF_COMMAND_BASE = '^DTMF={cid},' + Call.dtmfSupport = True + elif callUpdateTableHint == 2: + # Wavecom modem: +WIND notifications supported + self.log.info('Loading Wavecom call state update table') + self._callStatusUpdates = ((re.compile('^\+WIND: 5,(\d)$'), self._handleCallInitiated), + (re.compile('^OK$'), self._handleCallAnswered), + (re.compile('^\+WIND: 6,(\d)$'), self._handleCallEnded)) + self._waitForAtdResponse = False # Wavecom modems return OK only when the call is answered + self._mustPollCallStatus = False + if commands == None: # older modem, assume it has standard DTMF support + Call.dtmfSupport = True + elif callUpdateTableHint == 3: # ZTE + # Use ZTE notifications ("CONNECT"/"HANGUP", but no "call initiated" notification) + self.log.info('Loading ZTE call state update table') + self._callStatusUpdates = ((re.compile('^CONNECT$'), self._handleCallAnswered), + (re.compile('^HANGUP:\s*(\d+)$'), self._handleCallEnded), + (re.compile('^OK$'), self._handleCallRejected)) + self._waitForAtdResponse = False # ZTE modems do not return an immediate OK only when the call is answered + self._mustPollCallStatus = False + self._waitForCallInitUpdate = False # ZTE modems do not provide "call initiated" updates + if commands == None: # ZTE uses standard +VTS for DTMF + Call.dtmfSupport = True + else: + # Unknown modem - we do not know what its call updates look like. Use polling instead + self.log.info('Unknown/generic modem type - will use polling for call state updates') + self._mustPollCallStatus = True + self._pollCallStatusRegex = re.compile('^\+CLCC:\s+(\d+),(\d),(\d),(\d),([^,]),"([^,]*)",(\d+)$') + self._waitForAtdResponse = True # Most modems return OK immediately after issuing ATD + + # General meta-information setup + self.write('AT+COPS=3,0', parseError=False) # Use long alphanumeric name format + + # SMS setup + self.write('AT+CMGF={0}'.format(1 if self.smsTextMode else 0)) # Switch to text or PDU mode for SMS messages + self._compileSmsRegexes() + if self._smscNumber != None: + self.write('AT+CSCA="{0}"'.format(self._smscNumber)) # Set default SMSC number + currentSmscNumber = self._smscNumber + else: + currentSmscNumber = self.smsc + # Some modems delete the SMSC number when setting text-mode SMS parameters; preserve it if needed + if currentSmscNumber != None: + self._smscNumber = None # clear cache + if self.requestDelivery: + self.write('AT+CSMP=49,167,0,0', parseError=False) # Enable delivery reports + else: + self.write('AT+CSMP=17,167,0,0', parseError=False) # Not enable delivery reports + # ...check SMSC again to ensure it did not change + if currentSmscNumber != None and self.smsc != currentSmscNumber: + self.smsc = currentSmscNumber + + # Set message storage, but first check what the modem supports - example response: +CPMS: (("SM","BM","SR"),("SM")) + try: + cpmsLine = lineStartingWith('+CPMS', self.write('AT+CPMS=?')) + except CommandError: + # Modem does not support AT+CPMS; SMS reading unavailable + self._smsReadSupported = False + self.log.warning('SMS preferred message storage query not supported by modem. SMS reading unavailable.') + else: + cpmsSupport = cpmsLine.split(' ', 1)[1].split('),(') + # Do a sanity check on the memory types returned - Nokia S60 devices return empty strings, for example + for memItem in cpmsSupport: + if len(memItem) == 0: + # No support for reading stored SMS via AT commands - probably a Nokia S60 + self._smsReadSupported = False + self.log.warning('Invalid SMS message storage support returned by modem. SMS reading unavailable. Response was: "%s"', cpmsLine) + break + else: + # Suppported memory types look fine, continue + preferredMemoryTypes = ('"ME"', '"SM"', '"SR"') + cpmsItems = [''] * len(cpmsSupport) + for i in xrange(len(cpmsSupport)): + for memType in preferredMemoryTypes: + if memType in cpmsSupport[i]: + if i == 0: + self._smsMemReadDelete = memType + cpmsItems[i] = memType + break + self.write('AT+CPMS={0}'.format(','.join(cpmsItems))) # Set message storage + del cpmsSupport + del cpmsLine + + if self._smsReadSupported and (self.smsReceivedCallback or self.smsStatusReportCallback): + try: + self.write('AT+CNMI=' + self.AT_CNMI) # Set message notifications + except CommandError: + try: + self.write('AT+CNMI=2,1,0,1,0') # Set message notifications, using TE for delivery reports + except CommandError: + # Message notifications not supported + self._smsReadSupported = False + self.log.warning('Incoming SMS notifications not supported by modem. SMS receiving unavailable.') + + # Incoming call notification setup + try: + self.write('AT+CLIP=1') # Enable calling line identification presentation + except CommandError as clipError: + self._callingLineIdentification = False + self.log.warning('Incoming call calling line identification (caller ID) not supported by modem. Error: {0}'.format(clipError)) + else: + self._callingLineIdentification = True + try: + self.write('AT+CRC=1') # Enable extended format of incoming indication (optional) + except CommandError as crcError: + self._extendedIncomingCallIndication = False + self.log.warning('Extended format incoming call indication not supported by modem. Error: {0}'.format(crcError)) + else: + self._extendedIncomingCallIndication = True + + # Call control setup + self.write('AT+CVHU=0', parseError=False) # Enable call hang-up with ATH command (ignore if command not supported) + + def _unlockSim(self, pin): + """ Unlocks the SIM card using the specified PIN (if necessary, else does nothing) """ + # Unlock the SIM card if needed + try: + cpinResponse = lineStartingWith('+CPIN', self.write('AT+CPIN?', timeout=15)) + except TimeoutException as timeout: + # Wavecom modems do not end +CPIN responses with "OK" (github issue #19) - see if just the +CPIN response was returned + if timeout.data != None: + cpinResponse = lineStartingWith('+CPIN', timeout.data) + if cpinResponse == None: + # No useful response read + raise timeout + else: + # Nothing read (real timeout) + raise timeout + if cpinResponse != '+CPIN: READY': + if pin != None: + self.write('AT+CPIN="{0}"'.format(pin)) + else: + raise PinRequiredError('AT+CPIN') + + def write(self, data, waitForResponse=True, timeout=10, parseError=True, writeTerm=TERMINATOR, expectedResponseTermSeq=None): + """ Write data to the modem. + + This method adds the ``\\r\\n`` end-of-line sequence to the data parameter, and + writes it to the modem. + + :param data: Command/data to be written to the modem + :type data: str + :param waitForResponse: Whether this method should block and return the response from the modem or not + :type waitForResponse: bool + :param timeout: Maximum amount of time in seconds to wait for a response from the modem + :type timeout: int + :param parseError: If True, a CommandError is raised if the modem responds with an error (otherwise the response is returned as-is) + :type parseError: bool + :param writeTerm: The terminating sequence to append to the written data + :type writeTerm: str + :param expectedResponseTermSeq: The expected terminating sequence that marks the end of the modem's response (defaults to ``\\r\\n``) + :type expectedResponseTermSeq: str + + :raise CommandError: if the command returns an error (only if parseError parameter is True) + :raise TimeoutException: if no response to the command was received from the modem + + :return: A list containing the response lines from the modem, or None if waitForResponse is False + :rtype: list + """ + + self.log.debug('write: %s', data) + responseLines = super(GsmModem, self).write(data + writeTerm, waitForResponse=waitForResponse, timeout=timeout, expectedResponseTermSeq=expectedResponseTermSeq) + if self._writeWait > 0: # Sleep a bit if required (some older modems suffer under load) + time.sleep(self._writeWait) + if waitForResponse: + cmdStatusLine = responseLines[-1] + if parseError: + if 'ERROR' in cmdStatusLine: + cmErrorMatch = self.CM_ERROR_REGEX.match(cmdStatusLine) + if cmErrorMatch: + errorType = cmErrorMatch.group(1) + errorCode = int(cmErrorMatch.group(2)) + if errorCode == 515 or errorCode == 14: + # 515 means: "Please wait, init or command processing in progress." + # 14 means "SIM busy" + self._writeWait += 0.2 # Increase waiting period temporarily + # Retry the command after waiting a bit + self.log.debug('Device/SIM busy error detected; self._writeWait adjusted to %fs', self._writeWait) + time.sleep(self._writeWait) + result = self.write(data, waitForResponse, timeout, parseError, writeTerm, expectedResponseTermSeq) + self.log.debug('self_writeWait set to 0.1 because of recovering from device busy (515) error') + if errorCode == 515: + self._writeWait = 0.1 # Set this to something sane for further commands (slow modem) + else: + self._writeWait = 0 # The modem was just waiting for the SIM card + return result + if errorType == 'CME': + raise CmeError(data, int(errorCode)) + else: # CMS error + raise CmsError(data, int(errorCode)) + else: + raise CommandError(data) + elif cmdStatusLine == 'COMMAND NOT SUPPORT': # Some Huawei modems respond with this for unknown commands + raise CommandError('{} ({})'.format(data,cmdStatusLine)) + return responseLines + + @property + def signalStrength(self): + """ Checks the modem's cellular network signal strength + + :raise CommandError: if an error occurs + + :return: The network signal strength as an integer between 0 and 99, or -1 if it is unknown + :rtype: int + """ + csq = self.CSQ_REGEX.match(self.write('AT+CSQ')[0]) + if csq: + ss = int(csq.group(1)) + return ss if ss != 99 else -1 + else: + raise CommandError() + + @property + def manufacturer(self): + """ :return: The modem's manufacturer's name """ + return self.write('AT+CGMI')[0] + + @property + def model(self): + """ :return: The modem's model name """ + return self.write('AT+CGMM')[0] + + @property + def revision(self): + """ :return: The modem's software revision, or None if not known/supported """ + try: + return self.write('AT+CGMR')[0] + except CommandError: + return None + + @property + def imei(self): + """ :return: The modem's serial number (IMEI number) """ + return self.write('AT+CGSN')[0] + + @property + def imsi(self): + """ :return: The IMSI (International Mobile Subscriber Identity) of the SIM card. The PIN may need to be entered before reading the IMSI """ + return self.write('AT+CIMI')[0] + + @property + def networkName(self): + """ :return: the name of the GSM Network Operator to which the modem is connected """ + copsMatch = lineMatching('^\+COPS: (\d),(\d),"(.+)",{0,1}\d*$', self.write('AT+COPS?')) # response format: +COPS: mode,format,"operator_name",x + if copsMatch: + return copsMatch.group(3) + + @property + def supportedCommands(self): + """ :return: list of AT commands supported by this modem (without the AT prefix). Returns None if not known """ + try: + # AT+CLAC responses differ between modems. Most respond with +CLAC: and then a comma-separated list of commands + # while others simply return each command on a new line, with no +CLAC: prefix + response = self.write('AT+CLAC', timeout=10) + if len(response) == 2: # Single-line response, comma separated + commands = response[0] + if commands.startswith('+CLAC'): + commands = commands[6:] # remove the +CLAC: prefix before splitting + return commands.split(',') + elif len(response) > 2: # Multi-line response + return [removeAtPrefix(cmd.strip()) for cmd in response[:-1]] + else: + self.log.debug('Unhandled +CLAC response: {0}'.format(response)) + return None + except (TimeoutException, CommandError): + # Try interactive command recognition + commands = [] + checkable_commands = ['^CVOICE', '+VTS', '^DTMF', '^USSDMODE', '+WIND', '+ZPAS', '+CSCS', '+CNUM'] + + # Check if modem is still alive + try: + response = self.write('AT') + except: + raise TimeoutException + + # Check all commands that will by considered + for command in checkable_commands: + try: + # Compose AT command that will read values under specified function + at_command='AT'+command+'=?' + response = self.write(at_command) + # If there are values inside response - add command to the list + commands.append(command) + except: + continue + + # Return found commands + if len(commands) == 0: + return None + else: + return commands + + @property + def smsTextMode(self): + """ :return: True if the modem is set to use text mode for SMS, False if it is set to use PDU mode """ + return self._smsTextMode + @smsTextMode.setter + def smsTextMode(self, textMode): + """ Set to True for the modem to use text mode for SMS, or False for it to use PDU mode """ + if textMode != self._smsTextMode: + if self.alive: + self.write('AT+CMGF={0}'.format(1 if textMode else 0)) + self._smsTextMode = textMode + self._compileSmsRegexes() + + @property + def smsSupportedEncoding(self): + """ + :raise NotImplementedError: If an error occures during AT command response parsing. + :return: List of supported encoding names. """ + + # Check if command is available + if self._commands == None: + self._commands = self.supportedCommands + + if self._commands == None: + self._smsSupportedEncodingNames = [] + return self._smsSupportedEncodingNames + + if not '+CSCS' in self._commands: + self._smsSupportedEncodingNames = [] + return self._smsSupportedEncodingNames + + # Get available encoding names + response = self.write('AT+CSCS=?') + + # Check response length (should be 2 - list of options and command status) + if len(response) != 2: + self.log.debug('Unhandled +CSCS response: {0}'.format(response)) + self._smsSupportedEncodingNames = [] + raise NotImplementedError + + # Extract encoding names list + try: + enc_list = response[0] # Get the first line + enc_list = enc_list[6:] # Remove '+CSCS: ' prefix + # Extract AT list in format ("str", "str2", "str3") + enc_list = enc_list.split('(')[1] + enc_list = enc_list.split(')')[0] + enc_list = enc_list.split(',') + enc_list = [x.split('"')[1] for x in enc_list] + except: + self.log.debug('Unhandled +CSCS response: {0}'.format(response)) + self._smsSupportedEncodingNames = [] + raise NotImplementedError + + self._smsSupportedEncodingNames = enc_list + return self._smsSupportedEncodingNames + + @property + def smsEncoding(self): + """ :return: Encoding name if encoding command is available, else GSM. """ + if self._commands == None: + self._commands = self.supportedCommands + + if self._commands == None: + return self._smsEncoding + + if '+CSCS' in self._commands: + response = self.write('AT+CSCS?') + + if len(response) == 2: + encoding = response[0] + if encoding.startswith('+CSCS'): + encoding = encoding[6:].split('"') # remove the +CSCS: prefix before splitting + if len(encoding) == 3: + self._smsEncoding = encoding[1] + else: + self.log.debug('Unhandled +CSCS response: {0}'.format(response)) + else: + self.log.debug('Unhandled +CSCS response: {0}'.format(response)) + + return self._smsEncoding + @smsEncoding.setter + def smsEncoding(self, encoding): + """ Set encoding for SMS inside PDU mode. + + :raise CommandError: if unable to set encoding + :raise ValueError: if encoding is not supported by modem + """ + # Check if command is available + if self._commands == None: + self._commands = self.supportedCommands + + if self._commands == None: + if encoding != self._smsEncoding: + raise CommandError('Unable to set SMS encoding (no supported commands)') + else: + return + + if not '+CSCS' in self._commands: + if encoding != self._smsEncoding: + raise CommandError('Unable to set SMS encoding (+CSCS command not supported)') + else: + return + + # Check if command is available + if self._smsSupportedEncodingNames == None: + self.smsSupportedEncoding + + # Check if desired encoding is available + if encoding in self._smsSupportedEncodingNames: + # Set encoding + response = self.write('AT+CSCS="{0}"'.format(encoding)) + if len(response) == 1: + if response[0].lower() == 'ok': + self._smsEncoding = encoding + return + + if encoding != self._smsEncoding: + raise ValueError('Unable to set SMS encoding (enocoding {0} not supported)'.format(encoding)) + else: + return + + def _setSmsMemory(self, readDelete=None, write=None): + """ Set the current SMS memory to use for read/delete/write operations """ + # Switch to the correct memory type if required + if write != None and write != self._smsMemWrite: + readDel = readDelete or self._smsMemReadDelete + self.write('AT+CPMS="{0}","{1}"'.format(readDel, write)) + self._smsMemReadDelete = readDel + self._smsMemWrite = write + elif readDelete != None and readDelete != self._smsMemReadDelete: + self.write('AT+CPMS="{0}"'.format(readDelete)) + self._smsMemReadDelete = readDelete + + def _compileSmsRegexes(self): + """ Compiles regular expression used for parsing SMS messages based on current mode """ + if self.smsTextMode: + if self.CMGR_SM_DELIVER_REGEX_TEXT == None: + self.CMGR_SM_DELIVER_REGEX_TEXT = re.compile('^\+CMGR: "([^"]+)","([^"]+)",[^,]*,"([^"]+)"$') + self.CMGR_SM_REPORT_REGEXT_TEXT = re.compile('^\+CMGR: ([^,]*),\d+,(\d+),"{0,1}([^"]*)"{0,1},\d*,"([^"]+)","([^"]+)",(\d+)$') + elif self.CMGR_REGEX_PDU == None: + self.CMGR_REGEX_PDU = re.compile('^\+CMGR:\s*(\d*),\s*"{0,1}([^"]*)"{0,1},\s*(\d+)$') + + @property + def gsmBusy(self): + """ :return: Current GSMBUSY state """ + try: + response = self.write('AT+GSMBUSY?') + response = response[0] # Get the first line + response = response[10] # Remove '+GSMBUSY: ' prefix + self._gsmBusy = response + except: + pass # If error is related to ME funtionality: +CME ERROR: + return self._gsmBusy + @gsmBusy.setter + def gsmBusy(self, gsmBusy): + """ Sete GSMBUSY state """ + if gsmBusy != self._gsmBusy: + if self.alive: + self.write('AT+GSMBUSY="{0}"'.format(gsmBusy)) + self._gsmBusy = gsmBusy + + @property + def smsc(self): + """ :return: The default SMSC number stored on the SIM card """ + if self._smscNumber == None: + try: + readSmsc = self.write('AT+CSCA?') + except SmscNumberUnknownError: + pass # Some modems return a CMS 330 error if the value isn't set + else: + cscaMatch = lineMatching('\+CSCA:\s*"([^,]+)",(\d+)$', readSmsc) + if cscaMatch: + self._smscNumber = cscaMatch.group(1) + return self._smscNumber + @smsc.setter + def smsc(self, smscNumber): + """ Set the default SMSC number to use when sending SMS messages """ + if smscNumber != self._smscNumber: + if self.alive: + self.write('AT+CSCA="{0}"'.format(smscNumber)) + self._smscNumber = smscNumber + + @property + def ownNumber(self): + """ Query subscriber phone number. + + It must be stored on SIM by operator. + If is it not stored already, it usually is possible to store the number by user. + + :raise TimeoutException: if a timeout was specified and reached + + + :return: Subscriber SIM phone number. Returns None if not known + :rtype: int + """ + + try: + if "+CNUM" in self._commands: + response = self.write('AT+CNUM') + else: + response = self.retrevie_first_number() + + if len(response)==1 and response[0] == "OK": # command is supported, but no number is set + response = self.retrevie_first_number() + return None + elif len(response) == 2: # OK and phone number. Actual number is in the first line, second parameter, and is placed inside quotation marks + cnumLine = response[0] + cnumMatch = self.CNUM_REGEX.match(cnumLine) + if cnumMatch: + return cnumMatch.group(1) + else: + self.log.debug('Error parse +CNUM response: {0}'.format(response)) + return None + elif len(response) > 2: # Multi-line response + self.log.debug('Unhandled +CNUM/+CPBS response: {0}'.format(response)) + return None + + except (TimeoutException, CommandError): + raise + + def retrevie_first_number(self): + # temporarily switch to "own numbers" phonebook, read position 1 and than switch back + response = self.write('AT+CPBS?') + selected_phonebook = response[0][6:].split('"')[ + 1] # first line, remove the +CSCS: prefix, split, first parameter + if selected_phonebook is not "ON": + self.write('AT+CPBS="ON"') + response = self.write("AT+CPBR=1") + self.write('AT+CPBS="{0}"'.format(selected_phonebook)) + return response + + @ownNumber.setter + def ownNumber(self, phone_number): + actual_phonebook = self.write('AT+CPBS?') + if actual_phonebook is not "ON": + self.write('AT+CPBS="ON"') + self.write('AT+CPBW=1,"' + phone_number + '"') + + + def waitForNetworkCoverage(self, timeout=None): + """ Block until the modem has GSM network coverage. + + This method blocks until the modem is registered with the network + and the signal strength is greater than 0, optionally timing out + if a timeout was specified + + :param timeout: Maximum time to wait for network coverage, in seconds + :type timeout: int or float + + :raise TimeoutException: if a timeout was specified and reached + :raise InvalidStateException: if the modem is not going to receive network coverage (SIM blocked, etc) + + :return: the current signal strength + """ + block = [True] + if timeout != None: + # Set up a timeout mechanism + def _cancelBlock(): + block[0] = False + t = threading.Timer(timeout, _cancelBlock) + t.start() + ss = -1 + checkCreg = True + while block[0]: + if checkCreg: + cregResult = lineMatching('^\+CREG:\s*(\d),(\d)(,[^,]*,[^,]*)?$', self.write('AT+CREG?', parseError=False)) # example result: +CREG: 0,1 + if cregResult: + status = int(cregResult.group(2)) + if status in (1, 5): + # 1: registered, home network, 5: registered, roaming + # Now simply check and return network signal strength + checkCreg = False + elif status == 3: + raise InvalidStateException('Network registration denied') + elif status == 0: + raise InvalidStateException('Device not searching for network operator') + else: + # Disable network registration check; only use signal strength + self.log.info('+CREG check disabled due to invalid response or unsupported command') + checkCreg = False + else: + # Check signal strength + ss = self.signalStrength + if ss > 0: + return ss + time.sleep(1) + else: + # If this is reached, the timer task has triggered + raise TimeoutException() + + def sendSms(self, destination, text, waitForDeliveryReport=False, deliveryTimeout=15, sendFlash=False): + """ Send an SMS text message + + :param destination: the recipient's phone number + :type destination: str + :param text: the message text + :type text: str + :param waitForDeliveryReport: if True, this method blocks until a delivery report is received for the sent message + :type waitForDeliveryReport: boolean + :param deliveryTimeout: the maximum time in seconds to wait for a delivery report (if "waitForDeliveryReport" is True) + :type deliveryTimeout: int or float + + :raise CommandError: if an error occurs while attempting to send the message + :raise TimeoutException: if the operation times out + """ + + # Check input text to select appropriate mode (text or PDU) + if self.smsTextMode: + try: + encodedText = encodeTextMode(text) + except ValueError: + self.smsTextMode = False + + if self.smsTextMode: + # Send SMS via AT commands + self.write('AT+CMGS="{0}"'.format(destination), timeout=5, expectedResponseTermSeq='> ') + result = lineStartingWith('+CMGS:', self.write(text, timeout=35, writeTerm=CTRLZ)) + else: + # Check encoding + try: + encodedText = encodeGsm7(text) + except ValueError: + encodedText = None + + # Set GSM modem SMS encoding format + # Encode message text and set data coding scheme based on text contents + if encodedText == None: + # Cannot encode text using GSM-7; use UCS2 instead + self.smsEncoding = 'UCS2' + else: + self.smsEncoding = 'GSM' + + # Encode text into PDUs + pdus = encodeSmsSubmitPdu(destination, text, reference=self._smsRef, sendFlash=sendFlash) + + # Send SMS PDUs via AT commands + for pdu in pdus: + self.write('AT+CMGS={0}'.format(pdu.tpduLength), timeout=5, expectedResponseTermSeq='> ') + result = lineStartingWith('+CMGS:', self.write(str(pdu), timeout=35, writeTerm=CTRLZ)) # example: +CMGS: xx + + if result == None: + raise CommandError('Modem did not respond with +CMGS response') + + # Keep SMS reference number in order to pair delivery reports with sent message + reference = int(result[7:]) + self._smsRef = reference + 1 + if self._smsRef > 255: + self._smsRef = 0 + + # Create sent SMS object for future delivery checks + sms = SentSms(destination, text, reference) + + # Add a weak-referenced entry for this SMS (allows us to update the SMS state if a status report is received) + self.sentSms[reference] = sms + if waitForDeliveryReport: + self._smsStatusReportEvent = threading.Event() + if self._smsStatusReportEvent.wait(deliveryTimeout): + self._smsStatusReportEvent = None + else: # Response timed out + self._smsStatusReportEvent = None + raise TimeoutException() + return sms + + def sendUssd(self, ussdString, responseTimeout=60): + """ Starts a USSD session by dialing the the specified USSD string, or \ + sends the specified string in the existing USSD session (if any) + + :param ussdString: The USSD access number to dial + :param responseTimeout: Maximum time to wait a response, in seconds + + :raise TimeoutException: if no response is received in time + + :return: The USSD response message/session (as a Ussd object) + :rtype: gsmmodem.modem.Ussd + """ + self._ussdSessionEvent = threading.Event() + try: + cusdResponse = self.write('AT+CUSD=1,"{0}",15'.format(ussdString), timeout=responseTimeout) # Should respond with "OK" + except Exception: + self._ussdSessionEvent = None # Cancel the thread sync lock + raise + + # Some modems issue the +CUSD response before the acknowledgment "OK" - check for that + if len(cusdResponse) > 1: + cusdResponseFound = lineStartingWith('+CUSD', cusdResponse) != None + if cusdResponseFound: + self._ussdSessionEvent = None # Cancel thread sync lock + return self._parseCusdResponse(cusdResponse) + # Wait for the +CUSD notification message + if self._ussdSessionEvent.wait(responseTimeout): + self._ussdSessionEvent = None + return self._ussdResponse + else: # Response timed out + self._ussdSessionEvent = None + raise TimeoutException() + + + def checkForwarding(self, querytype, responseTimeout=15): + """ Check forwarding status: 0=Unconditional, 1=Busy, 2=NoReply, 3=NotReach, 4=AllFwd, 5=AllCondFwd + :param querytype: The type of forwarding to check + + :return: Status + :rtype: Boolean + """ + try: + queryResponse = self.write('AT+CCFC={0},2'.format(querytype), timeout=responseTimeout) # Should respond with "OK" + except Exception: + raise + print(queryResponse) + return True + + + def setForwarding(self, fwdType, fwdEnable, fwdNumber, responseTimeout=15): + """ Check forwarding status: 0=Unconditional, 1=Busy, 2=NoReply, 3=NotReach, 4=AllFwd, 5=AllCondFwd + :param fwdType: The type of forwarding to set + :param fwdEnable: 1 to enable, 0 to disable, 2 to query, 3 to register, 4 to erase + :param fwdNumber: Number to forward to + + :return: Success or not + :rtype: Boolean + """ + try: + queryResponse = self.write('AT+CCFC={0},{1},"{2}"'.format(fwdType, fwdEnable, fwdNumber), timeout=responseTimeout) # Should respond with "OK" + except Exception: + raise + return False + print(queryResponse) + return queryResponse + + def dial(self, number, timeout=5, callStatusUpdateCallbackFunc=None): + """ Calls the specified phone number using a voice phone call + + :param number: The phone number to dial + :param timeout: Maximum time to wait for the call to be established + :param callStatusUpdateCallbackFunc: Callback function that is executed if the call's status changes due to + remote events (i.e. when it is answered, the call is ended by the remote party) + + :return: The outgoing call + :rtype: gsmmodem.modem.Call + """ + if self._waitForCallInitUpdate: + # Wait for the "call originated" notification message + self._dialEvent = threading.Event() + try: + self.write('ATD{0};'.format(number), timeout=timeout, waitForResponse=self._waitForAtdResponse) + except Exception: + self._dialEvent = None # Cancel the thread sync lock + raise + else: + # Don't wait for a call init update - base the call ID on the number of active calls + self.write('ATD{0};'.format(number), timeout=timeout, waitForResponse=self._waitForAtdResponse) + self.log.debug("Not waiting for outgoing call init update message") + callId = len(self.activeCalls) + 1 + callType = 0 # Assume voice + call = Call(self, callId, callType, number, callStatusUpdateCallbackFunc) + self.activeCalls[callId] = call + return call + + if self._mustPollCallStatus: + # Fake a call notification by polling call status until the status indicates that the call is being dialed + threading.Thread(target=self._pollCallStatus, kwargs={'expectedState': 0, 'timeout': timeout}).start() + + if self._dialEvent.wait(timeout): + self._dialEvent = None + callId, callType = self._dialResponse + call = Call(self, callId, callType, number, callStatusUpdateCallbackFunc) + self.activeCalls[callId] = call + return call + else: # Call establishing timed out + self._dialEvent = None + raise TimeoutException() + + def processStoredSms(self, unreadOnly=False): + """ Process all SMS messages currently stored on the device/SIM card. + + Reads all (or just unread) received SMS messages currently stored on the + device/SIM card, initiates "SMS received" events for them, and removes + them from the SIM card. + This is useful if SMS messages were received during a period that + python-gsmmodem was not running but the modem was powered on. + + :param unreadOnly: If True, only process unread SMS messages + :type unreadOnly: boolean + """ + if self.smsReceivedCallback: + states = [Sms.STATUS_RECEIVED_UNREAD] + if not unreadOnly: + states.insert(0, Sms.STATUS_RECEIVED_READ) + for msgStatus in states: + messages = self.listStoredSms(status=msgStatus, delete=True) + for sms in messages: + self.smsReceivedCallback(sms) + else: + raise ValueError('GsmModem.smsReceivedCallback not set') + + def listStoredSms(self, status=Sms.STATUS_ALL, memory=None, delete=False): + """ Returns SMS messages currently stored on the device/SIM card. + + The messages are read from the memory set by the "memory" parameter. + + :param status: Filter messages based on this read status; must be 0-4 (see Sms class) + :type status: int + :param memory: The memory type to read from. If None, use the current default SMS read memory + :type memory: str or None + :param delete: If True, delete returned messages from the device/SIM card + :type delete: bool + + :return: A list of Sms objects containing the messages read + :rtype: list + """ + self._setSmsMemory(readDelete=memory) + messages = [] + delMessages = set() + if self.smsTextMode: + cmglRegex= re.compile('^\+CMGL: (\d+),"([^"]+)","([^"]+)",[^,]*,"([^"]+)"$') + for key, val in dictItemsIter(Sms.TEXT_MODE_STATUS_MAP): + if status == val: + statusStr = key + break + else: + raise ValueError('Invalid status value: {0}'.format(status)) + result = self.write('AT+CMGL="{0}"'.format(statusStr)) + msgLines = [] + msgIndex = msgStatus = number = msgTime = None + for line in result: + cmglMatch = cmglRegex.match(line) + if cmglMatch: + # New message; save old one if applicable + if msgIndex != None and len(msgLines) > 0: + msgText = '\n'.join(msgLines) + msgLines = [] + messages.append(ReceivedSms(self, Sms.TEXT_MODE_STATUS_MAP[msgStatus], number, parseTextModeTimeStr(msgTime), msgText, None, [], msgIndex)) + delMessages.add(int(msgIndex)) + msgIndex, msgStatus, number, msgTime = cmglMatch.groups() + msgLines = [] + else: + if line != 'OK': + msgLines.append(line) + if msgIndex != None and len(msgLines) > 0: + msgText = '\n'.join(msgLines) + msgLines = [] + messages.append(ReceivedSms(self, Sms.TEXT_MODE_STATUS_MAP[msgStatus], number, parseTextModeTimeStr(msgTime), msgText, None, [], msgIndex)) + delMessages.add(int(msgIndex)) + else: + cmglRegex = re.compile('^\+CMGL:\s*(\d+),\s*(\d+),.*$') + readPdu = False + result = self.write('AT+CMGL={0}'.format(status)) + for line in result: + if not readPdu: + cmglMatch = cmglRegex.match(line) + if cmglMatch: + msgIndex = int(cmglMatch.group(1)) + msgStat = int(cmglMatch.group(2)) + readPdu = True + else: + try: + smsDict = decodeSmsPdu(line) + except EncodingError: + self.log.debug('Discarding line from +CMGL response: %s', line) + except: + pass + # dirty fix warning: https://github.com/yuriykashin/python-gsmmodem/issues/1 + # todo: make better fix + else: + if smsDict['type'] == 'SMS-DELIVER': + sms = ReceivedSms(self, int(msgStat), smsDict['number'], smsDict['time'], smsDict['text'], smsDict['smsc'], smsDict.get('udh', []), msgIndex) + elif smsDict['type'] == 'SMS-STATUS-REPORT': + sms = StatusReport(self, int(msgStat), smsDict['reference'], smsDict['number'], smsDict['time'], smsDict['discharge'], smsDict['status']) + else: + raise CommandError('Invalid PDU type for readStoredSms(): {0}'.format(smsDict['type'])) + messages.append(sms) + delMessages.add(msgIndex) + readPdu = False + if delete: + if status == Sms.STATUS_ALL: + # Delete all messages + self.deleteMultipleStoredSms() + else: + for msgIndex in delMessages: + self.deleteStoredSms(msgIndex) + return messages + + def _handleModemNotification(self, lines): + """ Handler for unsolicited notifications from the modem + + This method simply spawns a separate thread to handle the actual notification + (in order to release the read thread so that the handlers are able to write back to the modem, etc) + + :param lines The lines that were read + """ + threading.Thread(target=self.__threadedHandleModemNotification, kwargs={'lines': lines}).start() + + def __threadedHandleModemNotification(self, lines): + """ Implementation of _handleModemNotification() to be run in a separate thread + + :param lines The lines that were read + """ + next_line_is_te_statusreport = False + for line in lines: + if 'RING' in line: + # Incoming call (or existing call is ringing) + self._handleIncomingCall(lines) + return + elif line.startswith('+CMTI'): + # New SMS message indication + self._handleSmsReceived(line) + return + elif line.startswith('+CUSD'): + # USSD notification - either a response or a MT-USSD ("push USSD") message + self._handleUssd(lines) + return + elif line.startswith('+CDSI'): + # SMS status report + self._handleSmsStatusReport(line) + return + elif line.startswith('+CDS'): + # SMS status report at next line + next_line_is_te_statusreport = True + cdsMatch = self.CDS_REGEX.match(line) + if cdsMatch: + next_line_is_te_statusreport_length = int(cdsMatch.group(1)) + else: + next_line_is_te_statusreport_length = -1 + elif next_line_is_te_statusreport: + self._handleSmsStatusReportTe(next_line_is_te_statusreport_length, line) + return + elif line.startswith('+DTMF'): + # New incoming DTMF + self._handleIncomingDTMF(line) + return + else: + # Check for call status updates + for updateRegex, handlerFunc in self._callStatusUpdates: + match = updateRegex.match(line) + if match: + # Handle the update + handlerFunc(match) + return + # If this is reached, the notification wasn't handled + self.log.debug('Unhandled unsolicited modem notification: %s', lines) + + #Simcom modem able detect incoming DTMF + def _handleIncomingDTMF(self,line): + self.log.debug('Handling incoming DTMF') + + try: + dtmf_num=line.split(':')[1].replace(" ","") + self.dtmfpool.append(dtmf_num) + self.log.debug('DTMF number is {0}'.format(dtmf_num)) + except: + self.log.debug('Error parse DTMF number on line {0}'.format(line)) + def GetIncomingDTMF(self): + if (len(self.dtmfpool)==0): + return None + else: + return self.dtmfpool.pop(0) + + def _handleIncomingCall(self, lines): + self.log.debug('Handling incoming call') + ringLine = lines.pop(0) + if self._extendedIncomingCallIndication: + try: + callType = ringLine.split(' ', 1)[1] + except IndexError: + # Some external 3G scripts modify incoming call indication settings (issue #18) + self.log.debug('Extended incoming call indication format changed externally; re-enabling...') + callType = None + try: + # Re-enable extended format of incoming indication (optional) + self.write('AT+CRC=1') + except CommandError: + self.log.warning('Extended incoming call indication format changed externally; unable to re-enable') + self._extendedIncomingCallIndication = False + else: + callType = None + if self._callingLineIdentification and len(lines) > 0: + clipLine = lines.pop(0) + clipMatch = self.CLIP_REGEX.match(clipLine) + if clipMatch: + callerNumber = '+' + clipMatch.group(1) + ton = clipMatch.group(2) + #TODO: re-add support for this + callerName = None + #callerName = clipMatch.group(3) + #if callerName != None and len(callerName) == 0: + # callerName = None + else: + callerNumber = ton = callerName = None + else: + callerNumber = ton = callerName = None + + call = None + for activeCall in dictValuesIter(self.activeCalls): + if activeCall.number == callerNumber: + call = activeCall + call.ringCount += 1 + if call == None: + callId = len(self.activeCalls) + 1; + call = IncomingCall(self, callerNumber, ton, callerName, callId, callType) + self.activeCalls[callId] = call + self.incomingCallCallback(call) + + def _handleCallInitiated(self, regexMatch, callId=None, callType=1): + """ Handler for "outgoing call initiated" event notification line """ + if self._dialEvent: + if regexMatch: + groups = regexMatch.groups() + # Set self._dialReponse to (callId, callType) + if len(groups) >= 2: + self._dialResponse = (int(groups[0]) , int(groups[1])) + else: + self._dialResponse = (int(groups[0]), 1) # assume call type: VOICE + else: + self._dialResponse = callId, callType + self._dialEvent.set() + + def _handleCallAnswered(self, regexMatch, callId=None): + """ Handler for "outgoing call answered" event notification line """ + if regexMatch: + groups = regexMatch.groups() + if len(groups) > 1: + callId = int(groups[0]) + self.activeCalls[callId].answered = True + else: + # Call ID not available for this notificition - check for the first outgoing call that has not been answered + for call in dictValuesIter(self.activeCalls): + if call.answered == False and type(call) == Call: + call.answered = True + return + else: + # Use supplied values + self.activeCalls[callId].answered = True + + def _handleCallEnded(self, regexMatch, callId=None, filterUnanswered=False): + if regexMatch: + groups = regexMatch.groups() + if len(groups) > 0: + callId = int(groups[0]) + else: + # Call ID not available for this notification - check for the first outgoing call that is active + for call in dictValuesIter(self.activeCalls): + if type(call) == Call: + if not filterUnanswered or (filterUnanswered == True and call.answered == False): + callId = call.id + break + if callId and callId in self.activeCalls: + self.activeCalls[callId].answered = False + self.activeCalls[callId].active = False + del self.activeCalls[callId] + + def _handleCallRejected(self, regexMatch, callId=None): + """ Handler for rejected (unanswered calls being ended) + + Most modems use _handleCallEnded for handling both call rejections and remote hangups. + This method does the same, but filters for unanswered calls only. + """ + return self._handleCallEnded(regexMatch, callId, True) + + def _handleSmsReceived(self, notificationLine): + """ Handler for "new SMS" unsolicited notification line """ + self.log.info('SMS message received:'+str(notificationLine)) + if self.smsReceivedCallback is not None: + cmtiMatch = self.CMTI_REGEX.match(notificationLine) + if cmtiMatch: + msgMemory = cmtiMatch.group(1) + msgIndex = cmtiMatch.group(2) + sms = self.readStoredSms(msgIndex, msgMemory) + try: + self.smsReceivedCallback(sms) + except Exception: + self.log.error('error in smsReceivedCallback', exc_info=True) + else: + self.deleteStoredSms(msgIndex) + + def _handleSmsStatusReport(self, notificationLine): + """ Handler for SMS status reports """ + self.log.debug('SMS status report received') + cdsiMatch = self.CDSI_REGEX.match(notificationLine) + if cdsiMatch: + msgMemory = cdsiMatch.group(1) + msgIndex = cdsiMatch.group(2) + report = self.readStoredSms(msgIndex, msgMemory) + self.deleteStoredSms(msgIndex) + # Update sent SMS status if possible + if report.reference in self.sentSms: + self.sentSms[report.reference].report = report + if self._smsStatusReportEvent: + # A sendSms() call is waiting for this response - notify waiting thread + self._smsStatusReportEvent.set() + elif self.smsStatusReportCallback: + # Nothing is waiting for this report directly - use callback + try: + self.smsStatusReportCallback(report) + except Exception: + self.log.error('error in smsStatusReportCallback', exc_info=True) + + def _handleSmsStatusReportTe(self, length, notificationLine): + """ Handler for TE SMS status reports """ + self.log.info('TE SMS status report received') + try: + smsDict = decodeSmsPdu(notificationLine) + except EncodingError: + self.log.debug('Discarding notification line from +CDS response: %s', notificationLine) + else: + if smsDict['type'] == 'SMS-STATUS-REPORT': + report = StatusReport(self, int(smsDict['status']), smsDict['reference'], smsDict['number'], smsDict['time'], smsDict['discharge'], smsDict['status']) + else: + raise CommandError('Invalid PDU type for readStoredSms(): {0}'.format(smsDict['type'])) + # Update sent SMS status if possible + if report.reference in self.sentSms: + self.sentSms[report.reference].report = report + if self._smsStatusReportEvent: + # A sendSms() call is waiting for this response - notify waiting thread + self._smsStatusReportEvent.set() + else: + # Nothing is waiting for this report directly - use callback + try: + self.smsStatusReportCallback(report) + except Exception: + self.log.error('error in smsStatusReportCallback', exc_info=True) + + def readStoredSms(self, index, memory=None): + """ Reads and returns the SMS message at the specified index + + :param index: The index of the SMS message in the specified memory + :type index: int + :param memory: The memory type to read from. If None, use the current default SMS read memory + :type memory: str or None + + :raise CommandError: if unable to read the stored message + + :return: The SMS message + :rtype: subclass of gsmmodem.modem.Sms (either ReceivedSms or StatusReport) + """ + # Switch to the correct memory type if required + self._setSmsMemory(readDelete=memory) + msgData = self.write('AT+CMGR={0}'.format(index)) + # Parse meta information + if self.smsTextMode: + cmgrMatch = self.CMGR_SM_DELIVER_REGEX_TEXT.match(msgData[0]) + if cmgrMatch: + msgStatus, number, msgTime = cmgrMatch.groups() + msgText = '\n'.join(msgData[1:-1]) + return ReceivedSms(self, Sms.TEXT_MODE_STATUS_MAP[msgStatus], number, parseTextModeTimeStr(msgTime), msgText) + else: + # Try parsing status report + cmgrMatch = self.CMGR_SM_REPORT_REGEXT_TEXT.match(msgData[0]) + if cmgrMatch: + msgStatus, reference, number, sentTime, deliverTime, deliverStatus = cmgrMatch.groups() + if msgStatus.startswith('"'): + msgStatus = msgStatus[1:-1] + if len(msgStatus) == 0: + msgStatus = "REC UNREAD" + return StatusReport(self, Sms.TEXT_MODE_STATUS_MAP[msgStatus], int(reference), number, parseTextModeTimeStr(sentTime), parseTextModeTimeStr(deliverTime), int(deliverStatus)) + else: + raise CommandError('Failed to parse text-mode SMS message +CMGR response: {0}'.format(msgData)) + else: + cmgrMatch = self.CMGR_REGEX_PDU.match(msgData[0]) + if not cmgrMatch: + raise CommandError('Failed to parse PDU-mode SMS message +CMGR response: {0}'.format(msgData)) + stat, alpha, length = cmgrMatch.groups() + try: + stat = int(stat) + except Exception: + # Some modems (ZTE) do not always read return status - default to RECEIVED UNREAD + stat = Sms.STATUS_RECEIVED_UNREAD + pdu = msgData[1] + smsDict = decodeSmsPdu(pdu) + if smsDict['type'] == 'SMS-DELIVER': + return ReceivedSms(self, int(stat), smsDict['number'], smsDict['time'], smsDict['text'], smsDict['smsc'], smsDict.get('udh', [])) + elif smsDict['type'] == 'SMS-STATUS-REPORT': + return StatusReport(self, int(stat), smsDict['reference'], smsDict['number'], smsDict['time'], smsDict['discharge'], smsDict['status']) + else: + raise CommandError('Invalid PDU type for readStoredSms(): {0}'.format(smsDict['type'])) + + def deleteStoredSms(self, index, memory=None): + """ Deletes the SMS message stored at the specified index in modem/SIM card memory + + :param index: The index of the SMS message in the specified memory + :type index: int + :param memory: The memory type to delete from. If None, use the current default SMS read/delete memory + :type memory: str or None + + :raise CommandError: if unable to delete the stored message + """ + self._setSmsMemory(readDelete=memory) + self.write('AT+CMGD={0},0'.format(index)) + # TODO: make a check how many params are supported by the modem and use the right command. For example, Siemens MC35, TC35 take only one parameter. + #self.write('AT+CMGD={0}'.format(index)) + + def deleteMultipleStoredSms(self, delFlag=4, memory=None): + """ Deletes all SMS messages that have the specified read status. + + The messages are read from the memory set by the "memory" parameter. + The value of the "delFlag" paramater is the same as the "DelFlag" parameter of the +CMGD command: + 1: Delete All READ messages + 2: Delete All READ and SENT messages + 3: Delete All READ, SENT and UNSENT messages + 4: Delete All messages (this is the default) + + :param delFlag: Controls what type of messages to delete; see description above. + :type delFlag: int + :param memory: The memory type to delete from. If None, use the current default SMS read/delete memory + :type memory: str or None + :param delete: If True, delete returned messages from the device/SIM card + :type delete: bool + + :raise ValueErrror: if "delFlag" is not in range [1,4] + :raise CommandError: if unable to delete the stored messages + """ + if 0 < delFlag <= 4: + self._setSmsMemory(readDelete=memory) + self.write('AT+CMGD=1,{0}'.format(delFlag)) + else: + raise ValueError('"delFlag" must be in range [1,4]') + + def _handleUssd(self, lines): + """ Handler for USSD event notification line(s) """ + if self._ussdSessionEvent: + # A sendUssd() call is waiting for this response - parse it + self._ussdResponse = self._parseCusdResponse(lines) + # Notify waiting thread + self._ussdSessionEvent.set() + + def _parseCusdResponse(self, lines): + """ Parses one or more +CUSD notification lines (for USSD) + :return: USSD response object + :rtype: gsmmodem.modem.Ussd + """ + if len(lines) > 1: + # Issue #20: Some modem/network combinations use \r\n as in-message EOL indicators; + # - join lines to compensate for that (thanks to davidjb for the fix) + # Also, look for more than one +CUSD response because of certain modems' strange behaviour + cusdMatches = list(self.CUSD_REGEX.finditer('\r\n'.join(lines))) + else: + # Single standard +CUSD response + cusdMatches = [self.CUSD_REGEX.match(lines[0])] + message = None + sessionActive = True + if len(cusdMatches) > 1: + self.log.debug('Multiple +CUSD responses received; filtering...') + # Some modems issue a non-standard "extra" +CUSD notification for releasing the session + for cusdMatch in cusdMatches: + if cusdMatch.group(1) == '2': + # Set the session to inactive, but ignore the message + self.log.debug('Ignoring "session release" message: %s', cusdMatch.group(2)) + sessionActive = False + else: + # Not a "session release" message + message = cusdMatch.group(2) + if sessionActive and cusdMatch.group(1) != '1': + sessionActive = False + else: + sessionActive = cusdMatches[0].group(1) == '1' + message = cusdMatches[0].group(2) + return Ussd(self, sessionActive, message) + + def _placeHolderCallback(self, *args): + """ Does nothing """ + self.log.debug('called with args: {0}'.format(args)) + + def _pollCallStatus(self, expectedState, callId=None, timeout=None): + """ Poll the status of outgoing calls. + This is used for modems that do not have a known set of call status update notifications. + + :param expectedState: The internal state we are waiting for. 0 == initiated, 1 == answered, 2 = hangup + :type expectedState: int + + :raise TimeoutException: If a timeout was specified, and has occurred + """ + callDone = False + timeLeft = timeout or 999999 + while self.alive and not callDone and timeLeft > 0: + time.sleep(0.5) + if expectedState == 0: # Only call initializing can timeout + timeLeft -= 0.5 + try: + clcc = self._pollCallStatusRegex.match(self.write('AT+CLCC')[0]) + except TimeoutException as timeout: + # Can happend if the call was ended during our time.sleep() call + clcc = None + if clcc: + direction = int(clcc.group(2)) + if direction == 0: # Outgoing call + # Determine call state + stat = int(clcc.group(3)) + if expectedState == 0: # waiting for call initiated + if stat == 2 or stat == 3: # Dialing or ringing ("alerting") + callId = int(clcc.group(1)) + callType = int(clcc.group(4)) + self._handleCallInitiated(None, callId, callType) # if self_dialEvent is None, this does nothing + expectedState = 1 # Now wait for call answer + elif expectedState == 1: # waiting for call to be answered + if stat == 0: # Call active + callId = int(clcc.group(1)) + self._handleCallAnswered(None, callId) + expectedState = 2 # Now wait for call hangup + elif expectedState == 2 : # waiting for remote hangup + # Since there was no +CLCC response, the call is no longer active + callDone = True + self._handleCallEnded(None, callId=callId) + elif expectedState == 1: # waiting for call to be answered + # Call was rejected + callDone = True + self._handleCallRejected(None, callId=callId) + if timeLeft <= 0: + raise TimeoutException() + + +class Call(object): + """ A voice call """ + + DTMF_COMMAND_BASE = '+VTS=' + dtmfSupport = False # Indicates whether or not DTMF tones can be sent in calls + + def __init__(self, gsmModem, callId, callType, number, callStatusUpdateCallbackFunc=None): + """ + :param gsmModem: GsmModem instance that created this object + :param number: The number that is being called + """ + self._gsmModem = weakref.proxy(gsmModem) + self._callStatusUpdateCallbackFunc = callStatusUpdateCallbackFunc + # Unique ID of this call + self.id = callId + # Call type (VOICE == 0, etc) + self.type = callType + # The remote number of this call (destination or origin) + self.number = number + # Flag indicating whether the call has been answered or not (backing field for "answered" property) + self._answered = False + # Flag indicating whether or not the call is active + # (meaning it may be ringing or answered, but not ended because of a hangup event) + self.active = True + + @property + def answered(self): + return self._answered + @answered.setter + def answered(self, answered): + self._answered = answered + if self._callStatusUpdateCallbackFunc: + self._callStatusUpdateCallbackFunc(self) + + def sendDtmfTone(self, tones): + """ Send one or more DTMF tones to the remote party (only allowed for an answered call) + + Note: this is highly device-dependent, and might not work + + :param digits: A str containining one or more DTMF tones to play, e.g. "3" or "\*123#" + + :raise CommandError: if the command failed/is not supported + :raise InvalidStateException: if the call has not been answered, or is ended while the command is still executing + """ + if self.answered: + dtmfCommandBase = self.DTMF_COMMAND_BASE.format(cid=self.id) + toneLen = len(tones) + for tone in list(tones): + try: + self._gsmModem.write('AT{0}{1}'.format(dtmfCommandBase,tone), timeout=(5 + toneLen)) + + except CmeError as e: + if e.code == 30: + # No network service - can happen if call is ended during DTMF transmission (but also if DTMF is sent immediately after call is answered) + raise InterruptedException('No network service', e) + elif e.code == 3: + # Operation not allowed - can happen if call is ended during DTMF transmission + raise InterruptedException('Operation not allowed', e) + else: + raise e + else: + raise InvalidStateException('Call is not active (it has not yet been answered, or it has ended).') + + def hangup(self): + """ End the phone call. + + Does nothing if the call is already inactive. + """ + if self.active: + self._gsmModem.write('ATH') + self.answered = False + self.active = False + if self.id in self._gsmModem.activeCalls: + del self._gsmModem.activeCalls[self.id] + + +class IncomingCall(Call): + + CALL_TYPE_MAP = {'VOICE': 0} + + """ Represents an incoming call, conveniently allowing access to call meta information and -control """ + def __init__(self, gsmModem, number, ton, callerName, callId, callType): + """ + :param gsmModem: GsmModem instance that created this object + :param number: Caller number + :param ton: TON (type of number/address) in integer format + :param callType: Type of the incoming call (VOICE, FAX, DATA, etc) + """ + if callType in self.CALL_TYPE_MAP: + callType = self.CALL_TYPE_MAP[callType] + super(IncomingCall, self).__init__(gsmModem, callId, callType, number) + # Type attribute of the incoming call + self.ton = ton + self.callerName = callerName + # Flag indicating whether the call is ringing or not + self.ringing = True + # Amount of times this call has rung (before answer/hangup) + self.ringCount = 1 + + def answer(self): + """ Answer the phone call. + :return: self (for chaining method calls) + """ + if self.ringing: + self._gsmModem.write('ATA') + self.ringing = False + self.answered = True + return self + + def hangup(self): + """ End the phone call. """ + self.ringing = False + super(IncomingCall, self).hangup() + +class Ussd(object): + """ Unstructured Supplementary Service Data (USSD) message. + + This class contains convenient methods for replying to a USSD prompt + and to cancel the USSD session + """ + + def __init__(self, gsmModem, sessionActive, message): + self._gsmModem = weakref.proxy(gsmModem) + # Indicates if the session is active (True) or has been closed (False) + self.sessionActive = sessionActive + self.message = message + + def reply(self, message): + """ Sends a reply to this USSD message in the same USSD session + + :raise InvalidStateException: if the USSD session is not active (i.e. it has ended) + + :return: The USSD response message/session (as a Ussd object) + """ + if self.sessionActive: + return self._gsmModem.sendUssd(message) + else: + raise InvalidStateException('USSD session is inactive') + + def cancel(self): + """ Terminates/cancels the USSD session (without sending a reply) + + Does nothing if the USSD session is inactive. + """ + if self.sessionActive: + self._gsmModem.write('AT+CUSD=2') diff --git a/gsmmodem/pdu.py b/gsmmodem/pdu.py new file mode 100644 index 0000000..a3e28e8 --- /dev/null +++ b/gsmmodem/pdu.py @@ -0,0 +1,958 @@ +# -*- coding: utf8 -*- + +""" SMS PDU encoding methods """ + +from __future__ import unicode_literals + +import sys, codecs +from datetime import datetime, timedelta, tzinfo +from copy import copy +from .exceptions import EncodingError + +# For Python 3 support +PYTHON_VERSION = sys.version_info[0] +if PYTHON_VERSION >= 3: + MAX_INT = sys.maxsize + dictItemsIter = dict.items + xrange = range + unichr = chr + toByteArray = lambda x: bytearray(codecs.decode(x, 'hex_codec')) if type(x) == bytes else bytearray(codecs.decode(bytes(x, 'ascii'), 'hex_codec')) if type(x) == str else x + rawStrToByteArray = lambda x: bytearray(bytes(x, 'latin-1')) +else: #pragma: no cover + MAX_INT = sys.maxint + dictItemsIter = dict.iteritems + toByteArray = lambda x: bytearray(x.decode('hex')) if type(x) in (str, unicode) else x + rawStrToByteArray = bytearray + +TEXT_MODE = ('\n\r !\"#%&\'()*+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz') # TODO: Check if all of them are supported inside text mode +# Tables can be found at: http://en.wikipedia.org/wiki/GSM_03.38#GSM_7_bit_default_alphabet_and_extension_table_of_3GPP_TS_23.038_.2F_GSM_03.38 +GSM7_BASIC = ('@£$¥èéùìòÇ\nØø\rÅåΔ_ΦΓΛΩΠΨΣΘΞ\x1bÆæßÉ !\"#¤%&\'()*+,-./0123456789:;<=>?¡ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÑÜ`¿abcdefghijklmnopqrstuvwxyzäöñüà') +GSM7_EXTENDED = {chr(0xFF): 0x0A, + #CR2: chr(0x0D), + '^': chr(0x14), + #SS2: chr(0x1B), + '{': chr(0x28), + '}': chr(0x29), + '\\': chr(0x2F), + '[': chr(0x3C), + '~': chr(0x3D), + ']': chr(0x3E), + '|': chr(0x40), + '€': chr(0x65)} +# Maximum message sizes for each data coding +MAX_MESSAGE_LENGTH = {0x00: 160, # GSM-7 + 0x04: 140, # 8-bit + 0x08: 70} # UCS2 + +# Maximum message sizes for each data coding for multipart messages +MAX_MULTIPART_MESSAGE_LENGTH = {0x00: 153, # GSM-7 + 0x04: 133, # 8-bit TODO: Check this value! + 0x08: 67} # UCS2 + +class SmsPduTzInfo(tzinfo): + """ Simple implementation of datetime.tzinfo for handling timestamp GMT offsets specified in SMS PDUs """ + + def __init__(self, pduOffsetStr=None): + """ + :param pduOffset: 2 semi-octet timezone offset as specified by PDU (see GSM 03.40 spec) + :type pduOffset: str + + Note: pduOffsetStr is optional in this constructor due to the special requirement for pickling + mentioned in the Python docs. It should, however, be used (or otherwise pduOffsetStr must be + manually set) + """ + self._offset = None + if pduOffsetStr != None: + self._setPduOffsetStr(pduOffsetStr) + + def _setPduOffsetStr(self, pduOffsetStr): + # See if the timezone difference is positive/negative by checking MSB of first semi-octet + tzHexVal = int(pduOffsetStr, 16) + # In order to read time zone 'minute' shift: + # - Remove MSB (sign) + # - Read HEX value as decimal + # - Multiply by 15 + # See: https://en.wikipedia.org/wiki/GSM_03.40#Time_Format + + # Possible fix for #15 - convert invalid character to BCD-value + if (tzHexVal & 0x0F) > 0x9: + tzHexVal +=0x06 + + tzOffsetMinutes = int('{0:0>2X}'.format(tzHexVal & 0x7F)) * 15 + + if tzHexVal & 0x80 == 0: # positive + self._offset = timedelta(minutes=(tzOffsetMinutes)) + else: # negative + self._offset = timedelta(minutes=(-tzOffsetMinutes)) + + def utcoffset(self, dt): + return self._offset + + def dst(self, dt): + """ We do not have enough info in the SMS PDU to implement daylight savings time """ + return timedelta(0) + + +class InformationElement(object): + """ User Data Header (UDH) Information Element (IE) implementation + + This represents a single field ("information element") in the PDU's + User Data Header. The UDH itself contains one or more of these + information elements. + + If the IEI (IE identifier) is recognized, the class will automatically + specialize into one of the subclasses of InformationElement, + e.g. Concatenation or PortAddress, allowing the user to easily + access the specific (and useful) attributes of these special cases. + """ + + def __new__(cls, *args, **kwargs): #iei, ieLen, ieData): + """ Causes a new InformationElement class, or subclass + thereof, to be created. If the IEI is recognized, a specific + subclass of InformationElement is returned """ + if len(args) > 0: + targetClass = IEI_CLASS_MAP.get(args[0], cls) + elif 'iei' in kwargs: + targetClass = IEI_CLASS_MAP.get(kwargs['iei'], cls) + else: + return super(InformationElement, cls).__new__(cls) + return super(InformationElement, targetClass).__new__(targetClass) + + def __init__(self, iei, ieLen=0, ieData=None): + self.id = iei # IEI + self.dataLength = ieLen # IE Length + self.data = ieData or [] # raw IE data + + @classmethod + def decode(cls, byteIter): + """ Decodes a single IE at the current position in the specified + byte iterator + + :return: An InformationElement (or subclass) instance for the decoded IE + :rtype: InformationElement, or subclass thereof + """ + iei = next(byteIter) + ieLen = next(byteIter) + ieData = [] + for i in xrange(ieLen): + ieData.append(next(byteIter)) + return InformationElement(iei, ieLen, ieData) + + def encode(self): + """ Encodes this IE and returns the resulting bytes """ + result = bytearray() + result.append(self.id) + result.append(self.dataLength) + result.extend(self.data) + return result + + def __len__(self): + """ Exposes the IE's total length (including the IEI and IE length octet) in octets """ + return self.dataLength + 2 + + +class Concatenation(InformationElement): + """ IE that indicates SMS concatenation. + + This implementation handles both 8-bit and 16-bit concatenation + indication, and exposes the specific useful details of this + IE as instance variables. + + Exposes: + + reference + CSMS reference number, must be same for all the SMS parts in the CSMS + parts + total number of parts. The value shall remain constant for every short + message which makes up the concatenated short message. If the value is zero then + the receiving entity shall ignore the whole information element + number + this part's number in the sequence. The value shall start at 1 and + increment for every short message which makes up the concatenated short message + """ + + def __init__(self, iei=0x00, ieLen=0, ieData=None): + super(Concatenation, self).__init__(iei, ieLen, ieData) + if ieData != None: + if iei == 0x00: # 8-bit reference + self.reference, self.parts, self.number = ieData + else: # 0x08: 16-bit reference + self.reference = ieData[0] << 8 | ieData[1] + self.parts = ieData[2] + self.number = ieData[3] + + def encode(self): + if self.reference > 0xFF: + self.id = 0x08 # 16-bit reference + self.data = [self.reference >> 8, self.reference & 0xFF, self.parts, self.number] + else: + self.id = 0x00 # 8-bit reference + self.data = [self.reference, self.parts, self.number] + self.dataLength = len(self.data) + return super(Concatenation, self).encode() + + +class PortAddress(InformationElement): + """ IE that indicates an Application Port Addressing Scheme. + + This implementation handles both 8-bit and 16-bit concatenation + indication, and exposes the specific useful details of this + IE as instance variables. + + Exposes: + destination: The destination port number + source: The source port number + """ + + def __init__(self, iei=0x04, ieLen=0, ieData=None): + super(PortAddress, self).__init__(iei, ieLen, ieData) + if ieData != None: + if iei == 0x04: # 8-bit port addressing scheme + self.destination, self.source = ieData + else: # 0x05: 16-bit port addressing scheme + self.destination = ieData[0] << 8 | ieData[1] + self.source = ieData[2] << 8 | ieData[3] + + def encode(self): + if self.destination > 0xFF or self.source > 0xFF: + self.id = 0x05 # 16-bit + self.data = [self.destination >> 8, self.destination & 0xFF, self.source >> 8, self.source & 0xFF] + else: + self.id = 0x04 # 8-bit + self.data = [self.destination, self.source] + self.dataLength = len(self.data) + return super(PortAddress, self).encode() + + +# Map of recognized IEIs +IEI_CLASS_MAP = {0x00: Concatenation, # Concatenated short messages, 8-bit reference number + 0x08: Concatenation, # Concatenated short messages, 16-bit reference number + 0x04: PortAddress, # Application port addressing scheme, 8 bit address + 0x05: PortAddress # Application port addressing scheme, 16 bit address + } + + +class Pdu(object): + """ Encoded SMS PDU. Contains raw PDU data and related meta-information """ + + def __init__(self, data, tpduLength): + """ Constructor + :param data: the raw PDU data (as bytes) + :type data: bytearray + :param tpduLength: Length (in bytes) of the TPDU + :type tpduLength: int + """ + self.data = data + self.tpduLength = tpduLength + + def __str__(self): + global PYTHON_VERSION + if PYTHON_VERSION < 3: + return str(self.data).encode('hex').upper() + else: #pragma: no cover + return str(codecs.encode(self.data, 'hex_codec'), 'ascii').upper() + + +def encodeSmsSubmitPdu(number, text, reference=0, validity=None, smsc=None, requestStatusReport=True, rejectDuplicates=False, sendFlash=False): + """ Creates an SMS-SUBMIT PDU for sending a message with the specified text to the specified number + + :param number: the destination mobile number + :type number: str + :param text: the message text + :type text: str + :param reference: message reference number (see also: rejectDuplicates parameter) + :type reference: int + :param validity: message validity period (absolute or relative) + :type validity: datetime.timedelta (relative) or datetime.datetime (absolute) + :param smsc: SMSC number to use (leave None to use default) + :type smsc: str + :param rejectDuplicates: Flag that controls the TP-RD parameter (messages with same destination and reference may be rejected if True) + :type rejectDuplicates: bool + + :return: A list of one or more tuples containing the SMS PDU (as a bytearray, and the length of the TPDU part + :rtype: list of tuples + """ + if PYTHON_VERSION < 3: + if type(text) == str: + text = text.decode('UTF-8') + + tpduFirstOctet = 0x01 # SMS-SUBMIT PDU + if validity != None: + # Validity period format (TP-VPF) is stored in bits 4,3 of the first TPDU octet + if type(validity) == timedelta: + # Relative (TP-VP is integer) + tpduFirstOctet |= 0x10 # bit4 == 1, bit3 == 0 + validityPeriod = [_encodeRelativeValidityPeriod(validity)] + elif type(validity) == datetime: + # Absolute (TP-VP is semi-octet encoded date) + tpduFirstOctet |= 0x18 # bit4 == 1, bit3 == 1 + validityPeriod = _encodeTimestamp(validity) + else: + raise TypeError('"validity" must be of type datetime.timedelta (for relative value) or datetime.datetime (for absolute value)') + else: + validityPeriod = None + if rejectDuplicates: + tpduFirstOctet |= 0x04 # bit2 == 1 + if requestStatusReport: + tpduFirstOctet |= 0x20 # bit5 == 1 + + # Encode message text and set data coding scheme based on text contents + try: + encodedTextLength = len(encodeGsm7(text)) + except ValueError: + # Cannot encode text using GSM-7; use UCS2 instead + encodedTextLength = len(text) + alphabet = 0x08 # UCS2 + else: + alphabet = 0x00 # GSM-7 + + # Check if message should be concatenated + if encodedTextLength > MAX_MESSAGE_LENGTH[alphabet]: + # Text too long for single PDU - add "concatenation" User Data Header + concatHeaderPrototype = Concatenation() + concatHeaderPrototype.reference = reference + + # Devide whole text into parts + if alphabet == 0x00: + pduTextParts = divideTextGsm7(text) + elif alphabet == 0x08: + pduTextParts = divideTextUcs2(text) + else: + raise NotImplementedError + + pduCount = len(pduTextParts) + concatHeaderPrototype.parts = pduCount + tpduFirstOctet |= 0x40 + else: + concatHeaderPrototype = None + pduCount = 1 + + # Construct required PDU(s) + pdus = [] + for i in xrange(pduCount): + pdu = bytearray() + if smsc: + pdu.extend(_encodeAddressField(smsc, smscField=True)) + else: + pdu.append(0x00) # Don't supply an SMSC number - use the one configured in the device + + udh = bytearray() + if concatHeaderPrototype != None: + concatHeader = copy(concatHeaderPrototype) + concatHeader.number = i + 1 + pduText = pduTextParts[i] + pduTextLength = len(pduText) + udh.extend(concatHeader.encode()) + else: + pduText = text + + udhLen = len(udh) + + pdu.append(tpduFirstOctet) + pdu.append(reference) # message reference + # Add destination number + pdu.extend(_encodeAddressField(number)) + pdu.append(0x00) # Protocol identifier - no higher-level protocol + + pdu.append(alphabet if not sendFlash else (0x10 if alphabet == 0x00 else 0x18)) + if validityPeriod: + pdu.extend(validityPeriod) + + if alphabet == 0x00: # GSM-7 + encodedText = encodeGsm7(pduText) + userDataLength = len(encodedText) # Payload size in septets/characters + if udhLen > 0: + shift = ((udhLen + 1) * 8) % 7 # "fill bits" needed to make the UDH end on a septet boundary + userData = packSeptets(encodedText, padBits=shift) + if shift > 0: + userDataLength += 1 # take padding bits into account + else: + userData = packSeptets(encodedText) + elif alphabet == 0x08: # UCS2 + userData = encodeUcs2(pduText) + userDataLength = len(userData) + + if udhLen > 0: + userDataLength += udhLen + 1 # +1 for the UDH length indicator byte + pdu.append(userDataLength) + pdu.append(udhLen) + pdu.extend(udh) # UDH + else: + pdu.append(userDataLength) + pdu.extend(userData) # User Data (message payload) + tpdu_length = len(pdu) - 1 + pdus.append(Pdu(pdu, tpdu_length)) + return pdus + +def decodeSmsPdu(pdu): + """ Decodes SMS pdu data and returns a tuple in format (number, text) + + :param pdu: PDU data as a hex string, or a bytearray containing PDU octects + :type pdu: str or bytearray + + :raise EncodingError: If the specified PDU data cannot be decoded + + :return: The decoded SMS data as a dictionary + :rtype: dict + """ + try: + pdu = toByteArray(pdu) + except Exception as e: + # Python 2 raises TypeError, Python 3 raises binascii.Error + raise EncodingError(e) + result = {} + pduIter = iter(pdu) + + smscNumber, smscBytesRead = _decodeAddressField(pduIter, smscField=True) + result['smsc'] = smscNumber + result['tpdu_length'] = len(pdu) - smscBytesRead + + tpduFirstOctet = next(pduIter) + + pduType = tpduFirstOctet & 0x03 # bits 1-0 + if pduType == 0x00: # SMS-DELIVER or SMS-DELIVER REPORT + result['type'] = 'SMS-DELIVER' + result['number'] = _decodeAddressField(pduIter)[0] + result['protocol_id'] = next(pduIter) + dataCoding = _decodeDataCoding(next(pduIter)) + result['time'] = _decodeTimestamp(pduIter) + userDataLen = next(pduIter) + udhPresent = (tpduFirstOctet & 0x40) != 0 + ud = _decodeUserData(pduIter, userDataLen, dataCoding, udhPresent) + result.update(ud) + elif pduType == 0x01: # SMS-SUBMIT or SMS-SUBMIT-REPORT + result['type'] = 'SMS-SUBMIT' + result['reference'] = next(pduIter) # message reference - we don't really use this + result['number'] = _decodeAddressField(pduIter)[0] + result['protocol_id'] = next(pduIter) + dataCoding = _decodeDataCoding(next(pduIter)) + validityPeriodFormat = (tpduFirstOctet & 0x18) >> 3 # bits 4,3 + if validityPeriodFormat == 0x02: # TP-VP field present and integer represented (relative) + result['validity'] = _decodeRelativeValidityPeriod(next(pduIter)) + elif validityPeriodFormat == 0x03: # TP-VP field present and semi-octet represented (absolute) + result['validity'] = _decodeTimestamp(pduIter) + userDataLen = next(pduIter) + udhPresent = (tpduFirstOctet & 0x40) != 0 + ud = _decodeUserData(pduIter, userDataLen, dataCoding, udhPresent) + result.update(ud) + elif pduType == 0x02: # SMS-STATUS-REPORT or SMS-COMMAND + result['type'] = 'SMS-STATUS-REPORT' + result['reference'] = next(pduIter) + result['number'] = _decodeAddressField(pduIter)[0] + result['time'] = _decodeTimestamp(pduIter) + result['discharge'] = _decodeTimestamp(pduIter) + result['status'] = next(pduIter) + else: + raise EncodingError('Unknown SMS message type: {0}. First TPDU octet was: {1}'.format(pduType, tpduFirstOctet)) + + return result + +def _decodeUserData(byteIter, userDataLen, dataCoding, udhPresent): + """ Decodes PDU user data (UDHI (if present) and message text) """ + result = {} + if udhPresent: + # User Data Header is present + result['udh'] = [] + udhLen = next(byteIter) + ieLenRead = 0 + # Parse and store UDH fields + while ieLenRead < udhLen: + ie = InformationElement.decode(byteIter) + ieLenRead += len(ie) + result['udh'].append(ie) + del ieLenRead + if dataCoding == 0x00: # GSM-7 + # Since we are using 7-bit data, "fill bits" may have been added to make the UDH end on a septet boundary + shift = ((udhLen + 1) * 8) % 7 # "fill bits" needed to make the UDH end on a septet boundary + # Simulate another "shift" in the unpackSeptets algorithm in order to ignore the fill bits + prevOctet = next(byteIter) + shift += 1 + + if dataCoding == 0x00: # GSM-7 + if udhPresent: + userDataSeptets = unpackSeptets(byteIter, userDataLen, prevOctet, shift) + else: + userDataSeptets = unpackSeptets(byteIter, userDataLen) + result['text'] = decodeGsm7(userDataSeptets) + elif dataCoding == 0x02: # UCS2 + result['text'] = decodeUcs2(byteIter, userDataLen) + else: # 8-bit (data) + userData = [] + for b in byteIter: + userData.append(unichr(b)) + result['text'] = ''.join(userData) + return result + +def _decodeRelativeValidityPeriod(tpVp): + """ Calculates the relative SMS validity period (based on the table in section 9.2.3.12 of GSM 03.40) + :rtype: datetime.timedelta + """ + if tpVp <= 143: + return timedelta(minutes=((tpVp + 1) * 5)) + elif 144 <= tpVp <= 167: + return timedelta(hours=12, minutes=((tpVp - 143) * 30)) + elif 168 <= tpVp <= 196: + return timedelta(days=(tpVp - 166)) + elif 197 <= tpVp <= 255: + return timedelta(weeks=(tpVp - 192)) + else: + raise ValueError('tpVp must be in range [0, 255]') + +def _encodeRelativeValidityPeriod(validityPeriod): + """ Encodes the specified relative validity period timedelta into an integer for use in an SMS PDU + (based on the table in section 9.2.3.12 of GSM 03.40) + + :param validityPeriod: The validity period to encode + :type validityPeriod: datetime.timedelta + :rtype: int + """ + # Python 2.6 does not have timedelta.total_seconds(), so compute it manually + #seconds = validityPeriod.total_seconds() + seconds = validityPeriod.seconds + (validityPeriod.days * 24 * 3600) + if seconds <= 43200: # 12 hours + tpVp = int(seconds / 300) - 1 # divide by 5 minutes, subtract 1 + elif seconds <= 86400: # 24 hours + tpVp = int((seconds - 43200) / 1800) + 143 # subtract 12 hours, divide by 30 minutes. add 143 + elif validityPeriod.days <= 30: # 30 days + tpVp = validityPeriod.days + 166 # amount of days + 166 + elif validityPeriod.days <= 441: # max value of tpVp is 255 + tpVp = int(validityPeriod.days / 7) + 192 # amount of weeks + 192 + else: + raise ValueError('Validity period too long; tpVp limited to 1 octet (max value: 255)') + return tpVp + +def _decodeTimestamp(byteIter): + """ Decodes a 7-octet timestamp """ + dateStr = decodeSemiOctets(byteIter, 7) + timeZoneStr = dateStr[-2:] + return datetime.strptime(dateStr[:-2], '%y%m%d%H%M%S').replace(tzinfo=SmsPduTzInfo(timeZoneStr)) + +def _encodeTimestamp(timestamp): + """ Encodes a 7-octet timestamp from the specified date + + Note: the specified timestamp must have a UTC offset set; you can use gsmmodem.util.SimpleOffsetTzInfo for simple cases + + :param timestamp: The timestamp to encode + :type timestamp: datetime.datetime + + :return: The encoded timestamp + :rtype: bytearray + """ + if timestamp.tzinfo == None: + raise ValueError('Please specify time zone information for the timestamp (e.g. by using gsmmodem.util.SimpleOffsetTzInfo)') + + # See if the timezone difference is positive/negative + tzDelta = timestamp.utcoffset() + if tzDelta.days >= 0: + tzValStr = '{0:0>2}'.format(int(tzDelta.seconds / 60 / 15)) + else: # negative + tzVal = int((tzDelta.days * -3600 * 24 - tzDelta.seconds) / 60 / 15) # calculate offset in 0.25 hours + # Cast as literal hex value and set MSB of first semi-octet of timezone to 1 to indicate negative value + tzVal = int('{0:0>2}'.format(tzVal), 16) | 0x80 + tzValStr = '{0:0>2X}'.format(tzVal) + + dateStr = timestamp.strftime('%y%m%d%H%M%S') + tzValStr + + return encodeSemiOctets(dateStr) + +def _decodeDataCoding(octet): + if octet & 0xC0 == 0: + #compressed = octect & 0x20 + alphabet = (octet & 0x0C) >> 2 + return alphabet # 0x00 == GSM-7, 0x01 == 8-bit data, 0x02 == UCS2 + # We ignore other coding groups + return 0 + +def nibble2octet(addressLen): + return int((addressLen + 1) / 2) + +def _decodeAddressField(byteIter, smscField=False, log=False): + """ Decodes the address field at the current position of the bytearray iterator + + :param byteIter: Iterator over bytearray + :type byteIter: iter(bytearray) + + :return: Tuple containing the address value and amount of bytes read (value is or None if it is empty (zero-length)) + :rtype: tuple + """ + addressLen = next(byteIter) + if addressLen > 0: + toa = next(byteIter) + ton = (toa & 0x70) # bits 6,5,4 of type-of-address == type-of-number + if ton == 0x50: + # Alphanumberic number + addressLen = nibble2octet(addressLen) + septets = unpackSeptets(byteIter, addressLen) + addressValue = decodeGsm7(septets) + return (addressValue, (addressLen + 2)) + else: + # ton == 0x00: Unknown (might be international, local, etc) - leave as is + # ton == 0x20: National number + if smscField: + addressValue = decodeSemiOctets(byteIter, addressLen-1) + else: + addressLen = nibble2octet(addressLen) + addressValue = decodeSemiOctets(byteIter, addressLen) + addressLen += 1 # for the return value, add the toa byte + if ton == 0x10: # International number + addressValue = '+' + addressValue + return (addressValue, (addressLen + 1)) + else: + return (None, 1) + +def _encodeAddressField(address, smscField=False): + """ Encodes the address into an address field + + :param address: The address to encode (phone number or alphanumeric) + :type byteIter: str + + :return: Encoded SMS PDU address field + :rtype: bytearray + """ + # First, see if this is a number or an alphanumeric string + toa = 0x80 | 0x00 | 0x01 # Type-of-address start | Unknown type-of-number | ISDN/tel numbering plan + alphaNumeric = False + if address.isalnum(): + # Might just be a local number + if address.isdigit(): + # Local number + toa |= 0x20 + else: + # Alphanumeric address + toa |= 0x50 + toa &= 0xFE # switch to "unknown" numbering plan + alphaNumeric = True + else: + if address[0] == '+' and address[1:].isdigit(): + # International number + toa |= 0x10 + # Remove the '+' prefix + address = address[1:] + else: + # Alphanumeric address + toa |= 0x50 + toa &= 0xFE # switch to "unknown" numbering plan + alphaNumeric = True + if alphaNumeric: + addressValue = packSeptets(encodeGsm7(address, False)) + addressLen = len(addressValue) * 2 + else: + addressValue = encodeSemiOctets(address) + if smscField: + addressLen = len(addressValue) + 1 + else: + addressLen = len(address) + result = bytearray() + result.append(addressLen) + result.append(toa) + result.extend(addressValue) + return result + +def encodeSemiOctets(number): + """ Semi-octet encoding algorithm (e.g. for phone numbers) + + :return: bytearray containing the encoded octets + :rtype: bytearray + """ + if len(number) % 2 == 1: + number = number + 'F' # append the "end" indicator + octets = [int(number[i+1] + number[i], 16) for i in xrange(0, len(number), 2)] + return bytearray(octets) + +def decodeSemiOctets(encodedNumber, numberOfOctets=None): + """ Semi-octet decoding algorithm(e.g. for phone numbers) + + :param encodedNumber: The semi-octet-encoded telephone number (in bytearray format or hex string) + :type encodedNumber: bytearray, str or iter(bytearray) + :param numberOfOctets: The expected amount of octets after decoding (i.e. when to stop) + :type numberOfOctets: int + + :return: decoded telephone number + :rtype: string + """ + number = [] + if type(encodedNumber) in (str, bytes): + encodedNumber = bytearray(codecs.decode(encodedNumber, 'hex_codec')) + i = 0 + for octet in encodedNumber: + hexVal = hex(octet)[2:].zfill(2) + number.append(hexVal[1]) + if hexVal[0] != 'f': + number.append(hexVal[0]) + else: + break + if numberOfOctets != None: + i += 1 + if i == numberOfOctets: + break + return ''.join(number) + +def encodeTextMode(plaintext): + """ Text mode checker + + Tests whther SMS could be sent in text mode + + :param text: the text string to encode + + :raise ValueError: if the text string cannot be sent in text mode + + :return: Passed string + :rtype: str + """ + if PYTHON_VERSION >= 3: + plaintext = str(plaintext) + elif type(plaintext) == str: + plaintext = plaintext.decode('UTF-8') + + for char in plaintext: + idx = TEXT_MODE.find(char) + if idx != -1: + continue + else: + raise ValueError('Cannot encode char "{0}" inside text mode'.format(char)) + + if len(plaintext) > MAX_MESSAGE_LENGTH[0x00]: + raise ValueError('Message is too long for text mode (maximum {0} characters)'.format(MAX_MESSAGE_LENGTH[0x00])) + + return plaintext + +def encodeGsm7(plaintext, discardInvalid=False): + """ GSM-7 text encoding algorithm + + Encodes the specified text string into GSM-7 octets (characters). This method does not pack + the characters into septets. + + :param text: the text string to encode + :param discardInvalid: if True, characters that cannot be encoded will be silently discarded + + :raise ValueError: if the text string cannot be encoded using GSM-7 encoding (unless discardInvalid == True) + + :return: A bytearray containing the string encoded in GSM-7 encoding + :rtype: bytearray + """ + result = bytearray() + if PYTHON_VERSION >= 3: + plaintext = str(plaintext) + elif type(plaintext) == str: + plaintext = plaintext.decode('UTF-8') + + for char in plaintext: + idx = GSM7_BASIC.find(char) + if idx != -1: + result.append(idx) + elif char in GSM7_EXTENDED: + result.append(0x1B) # ESC - switch to extended table + result.append(ord(GSM7_EXTENDED[char])) + elif not discardInvalid: + raise ValueError('Cannot encode char "{0}" using GSM-7 encoding'.format(char)) + return result + +def decodeGsm7(encodedText): + """ GSM-7 text decoding algorithm + + Decodes the specified GSM-7-encoded string into a plaintext string. + + :param encodedText: the text string to encode + :type encodedText: bytearray or str + + :return: A string containing the decoded text + :rtype: str + """ + result = [] + if type(encodedText) == str: + encodedText = rawStrToByteArray(encodedText) #bytearray(encodedText) + iterEncoded = iter(encodedText) + for b in iterEncoded: + if b == 0x1B: # ESC - switch to extended table + c = chr(next(iterEncoded)) + for char, value in dictItemsIter(GSM7_EXTENDED): + if c == value: + result.append(char) + break + else: + result.append(GSM7_BASIC[b]) + return ''.join(result) + +def divideTextGsm7(plainText): + """ GSM7 message dividing algorithm + + Divides text into list of chunks that could be stored in a single, GSM7-encoded SMS message. + + :param plainText: the text string to divide + :type plainText: str + + :return: A list of strings + :rtype: list of str + """ + result = [] + + plainStartPtr = 0 + plainStopPtr = 0 + chunkByteSize = 0 + + if PYTHON_VERSION >= 3: + plainText = str(plainText) + while plainStopPtr < len(plainText): + char = plainText[plainStopPtr] + idx = GSM7_BASIC.find(char) + if idx != -1: + chunkByteSize = chunkByteSize + 1; + elif char in GSM7_EXTENDED: + chunkByteSize = chunkByteSize + 2; + else: + raise ValueError('Cannot encode char "{0}" using GSM-7 encoding'.format(char)) + + plainStopPtr = plainStopPtr + 1 + if chunkByteSize > MAX_MULTIPART_MESSAGE_LENGTH[0x00]: + plainStopPtr = plainStopPtr - 1 + + if chunkByteSize >= MAX_MULTIPART_MESSAGE_LENGTH[0x00]: + result.append(plainText[plainStartPtr:plainStopPtr]) + plainStartPtr = plainStopPtr + chunkByteSize = 0 + + if chunkByteSize > 0: + result.append(plainText[plainStartPtr:]) + + return result + +def packSeptets(octets, padBits=0): + """ Packs the specified octets into septets + + Typically the output of encodeGsm7 would be used as input to this function. The resulting + bytearray contains the original GSM-7 characters packed into septets ready for transmission. + + :rtype: bytearray + """ + result = bytearray() + if type(octets) == str: + octets = iter(rawStrToByteArray(octets)) + elif type(octets) == bytearray: + octets = iter(octets) + shift = padBits + if padBits == 0: + try: + prevSeptet = next(octets) + except StopIteration: + return result + else: + prevSeptet = 0x00 + for octet in octets: + septet = octet & 0x7f; + if shift == 7: + # prevSeptet has already been fully added to result + shift = 0 + prevSeptet = septet + continue + b = ((septet << (7 - shift)) & 0xFF) | (prevSeptet >> shift) + prevSeptet = septet + shift += 1 + result.append(b) + if shift != 7: + # There is a bit "left over" from prevSeptet + result.append(prevSeptet >> shift) + return result + +def unpackSeptets(septets, numberOfSeptets=None, prevOctet=None, shift=7): + """ Unpacks the specified septets into octets + + :param septets: Iterator or iterable containing the septets packed into octets + :type septets: iter(bytearray), bytearray or str + :param numberOfSeptets: The amount of septets to unpack (or None for all remaining in "septets") + :type numberOfSeptets: int or None + + :return: The septets unpacked into octets + :rtype: bytearray + """ + result = bytearray() + if type(septets) == str: + septets = iter(rawStrToByteArray(septets)) + elif type(septets) == bytearray: + septets = iter(septets) + if numberOfSeptets == None: + numberOfSeptets = MAX_INT # Loop until StopIteration + if numberOfSeptets == 0: + return result + i = 0 + for octet in septets: + i += 1 + if shift == 7: + shift = 1 + if prevOctet != None: + result.append(prevOctet >> 1) + if i <= numberOfSeptets: + result.append(octet & 0x7F) + prevOctet = octet + if i == numberOfSeptets: + break + else: + continue + b = ((octet << shift) & 0x7F) | (prevOctet >> (8 - shift)) + + prevOctet = octet + result.append(b) + shift += 1 + + if i == numberOfSeptets: + break + if shift == 7 and prevOctet: + b = prevOctet >> (8 - shift) + if b: + # The final septet value still needs to be unpacked + result.append(b) + return result + +def decodeUcs2(byteIter, numBytes): + """ Decodes UCS2-encoded text from the specified byte iterator, up to a maximum of numBytes """ + userData = [] + i = 0 + try: + while i < numBytes: + userData.append(unichr((next(byteIter) << 8) | next(byteIter))) + i += 2 + except StopIteration: + # Not enough bytes in iterator to reach numBytes; return what we have + pass + return ''.join(userData) + +def encodeUcs2(text): + """ UCS2 text encoding algorithm + + Encodes the specified text string into UCS2-encoded bytes. + + :param text: the text string to encode + + :return: A bytearray containing the string encoded in UCS2 encoding + :rtype: bytearray + """ + result = bytearray() + + for b in map(ord, text): + result.append(b >> 8) + result.append(b & 0xFF) + return result + +def divideTextUcs2(plainText): + """ UCS-2 message dividing algorithm + + Divides text into list of chunks that could be stored in a single, UCS-2 -encoded SMS message. + + :param plainText: the text string to divide + :type plainText: str + + :return: A list of strings + :rtype: list of str + """ + result = [] + resultLength = 0 + + fullChunksCount = int(len(plainText) / MAX_MULTIPART_MESSAGE_LENGTH[0x08]) + for i in range(fullChunksCount): + result.append(plainText[i * MAX_MULTIPART_MESSAGE_LENGTH[0x08] : (i + 1) * MAX_MULTIPART_MESSAGE_LENGTH[0x08]]) + resultLength = resultLength + MAX_MULTIPART_MESSAGE_LENGTH[0x08] + + # Add last, not fully filled chunk + if resultLength < len(plainText): + result.append(plainText[resultLength:]) + + return result diff --git a/gsmmodem/serial_comms.py b/gsmmodem/serial_comms.py new file mode 100644 index 0000000..44544fe --- /dev/null +++ b/gsmmodem/serial_comms.py @@ -0,0 +1,147 @@ +#!/usr/bin/env python + +""" Low-level serial communications handling """ + +import sys, threading, logging + +import re +import serial # pyserial: http://pyserial.sourceforge.net + +from .exceptions import TimeoutException +from . import compat # For Python 2.6 compatibility + + +class SerialComms(object): + """ Wraps all low-level serial communications (actual read/write operations) """ + + log = logging.getLogger('gsmmodem.serial_comms.SerialComms') + + # End-of-line read terminator + RX_EOL_SEQ = b'\r\n' + # End-of-response terminator + RESPONSE_TERM = re.compile('^OK|ERROR|(\+CM[ES] ERROR: \d+)|(COMMAND NOT SUPPORT)$') + # Default timeout for serial port reads (in seconds) + timeout = 1 + + def __init__(self, port, baudrate=115200, notifyCallbackFunc=None, fatalErrorCallbackFunc=None, *args, **kwargs): + """ Constructor + + :param fatalErrorCallbackFunc: function to call if a fatal error occurs in the serial device reading thread + :type fatalErrorCallbackFunc: func + """ + self.alive = False + self.port = port + self.baudrate = baudrate + + self._responseEvent = None # threading.Event() + self._expectResponseTermSeq = None # expected response terminator sequence + self._response = None # Buffer containing response to a written command + self._notification = [] # Buffer containing lines from an unsolicited notification from the modem + # Reentrant lock for managing concurrent write access to the underlying serial port + self._txLock = threading.RLock() + + self.notifyCallback = notifyCallbackFunc or self._placeholderCallback + self.fatalErrorCallback = fatalErrorCallbackFunc or self._placeholderCallback + + self.com_args = args + self.com_kwargs = kwargs + + def connect(self): + """ Connects to the device and starts the read thread """ + self.serial = serial.Serial(dsrdtr=True, rtscts=True, port=self.port, baudrate=self.baudrate, + timeout=self.timeout, *self.com_args, **self.com_kwargs) + # Start read thread + self.alive = True + self.rxThread = threading.Thread(target=self._readLoop) + self.rxThread.daemon = True + self.rxThread.start() + + def close(self): + """ Stops the read thread, waits for it to exit cleanly, then closes the underlying serial port """ + self.alive = False + self.rxThread.join() + self.serial.close() + + def _handleLineRead(self, line, checkForResponseTerm=True): + # print 'sc.hlineread:',line + if self._responseEvent and not self._responseEvent.is_set(): + # A response event has been set up (another thread is waiting for this response) + self._response.append(line) + if not checkForResponseTerm or self.RESPONSE_TERM.match(line): + # End of response reached; notify waiting thread + # print 'response:', self._response + self.log.debug('response: %s', self._response) + self._responseEvent.set() + else: + # Nothing was waiting for this - treat it as a notification + self._notification.append(line) + if self.serial.inWaiting() == 0: + # No more chars on the way for this notification - notify higher-level callback + # print 'notification:', self._notification + self.log.debug('notification: %s', self._notification) + self.notifyCallback(self._notification) + self._notification = [] + + def _placeholderCallback(self, *args, **kwargs): + """ Placeholder callback function (does nothing) """ + + def _readLoop(self): + """ Read thread main loop + + Reads lines from the connected device + """ + try: + readTermSeq = bytearray(self.RX_EOL_SEQ) + readTermLen = len(readTermSeq) + rxBuffer = bytearray() + while self.alive: + data = self.serial.read(1) + if len(data) != 0: # check for timeout + # print >> sys.stderr, ' RX:', data,'({0})'.format(ord(data)) + rxBuffer.append(ord(data)) + if rxBuffer[-readTermLen:] == readTermSeq: + # A line (or other logical segment) has been read + line = rxBuffer[:-readTermLen].decode() + rxBuffer = bytearray() + if len(line) > 0: + # print 'calling handler' + self._handleLineRead(line) + elif self._expectResponseTermSeq: + if rxBuffer[-len(self._expectResponseTermSeq):] == self._expectResponseTermSeq: + line = rxBuffer.decode() + rxBuffer = bytearray() + self._handleLineRead(line, checkForResponseTerm=False) + # else: + # ' ' + except serial.SerialException as e: + self.alive = False + try: + self.serial.close() + except Exception: # pragma: no cover + pass + # Notify the fatal error handler + self.fatalErrorCallback(e) + + def write(self, data, waitForResponse=True, timeout=5, expectedResponseTermSeq=None): + data = data.encode() + with self._txLock: + if waitForResponse: + if expectedResponseTermSeq: + self._expectResponseTermSeq = bytearray(expectedResponseTermSeq.encode()) + self._response = [] + self._responseEvent = threading.Event() + self.serial.write(data) + if self._responseEvent.wait(timeout): + self._responseEvent = None + self._expectResponseTermSeq = False + return self._response + else: # Response timed out + self._responseEvent = None + self._expectResponseTermSeq = False + if len(self._response) > 0: + # Add the partial response to the timeout exception + raise TimeoutException(self._response) + else: + raise TimeoutException() + else: + self.serial.write(data) diff --git a/gsmmodem/util.py b/gsmmodem/util.py new file mode 100644 index 0000000..a61ba8d --- /dev/null +++ b/gsmmodem/util.py @@ -0,0 +1,130 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" Some common utility classes used by tests """ + +from datetime import datetime, timedelta, tzinfo +import re + + +class SimpleOffsetTzInfo(tzinfo): + """ Very simple implementation of datetime.tzinfo offering set timezone offset for datetime instances """ + + def __init__(self, offsetInHours=None): + """ Constructs a new tzinfo instance using an amount of hours as an offset + + :param offsetInHours: The timezone offset, in hours (may be negative) + :type offsetInHours: int or float + """ + if offsetInHours != None: # pragma: no cover + self.offsetInHours = offsetInHours + + def utcoffset(self, dt): + return timedelta(hours=self.offsetInHours) + + def dst(self, dt): + return timedelta(0) + + def __repr__(self): + return 'gsmmodem.util.SimpleOffsetTzInfo({0})'.format(self.offsetInHours) + + +def parseTextModeTimeStr(timeStr): + """ Parses the specified SMS text mode time string + + The time stamp format is "yy/MM/dd,hh:mm:ss±zz" + (yy = year, MM = month, dd = day, hh = hour, mm = minute, ss = second, zz = time zone + [Note: the unit of time zone is a quarter of an hour]) + + :param timeStr: The time string to parse + :type timeStr: str + + :return: datetime object representing the specified time string + :rtype: datetime.datetime + """ + msgTime = timeStr[:-3] + tzOffsetHours = int(int(timeStr[-3:]) * 0.25) + return datetime.strptime(msgTime, '%y/%m/%d,%H:%M:%S').replace(tzinfo=SimpleOffsetTzInfo(tzOffsetHours)) + + +def lineStartingWith(string, lines): + """ Searches through the specified list of strings and returns the + first line starting with the specified search string, or None if not found + """ + for line in lines: + if line.startswith(string): + return line + else: + return None + + +def lineMatching(regexStr, lines): + """ Searches through the specified list of strings and returns the regular expression + match for the first line that matches the specified regex string, or None if no match was found + + Note: if you have a pre-compiled regex pattern, use lineMatchingPattern() instead + + :type regexStr: Regular expression string to use + :type lines: List of lines to search + + :return: the regular expression match for the first line that matches the specified regex, or None if no match was found + :rtype: re.Match + """ + regex = re.compile(regexStr) + for line in lines: + m = regex.match(line) + if m: + return m + else: + return None + + +def lineMatchingPattern(pattern, lines): + """ Searches through the specified list of strings and returns the regular expression + match for the first line that matches the specified pre-compiled regex pattern, or None if no match was found + + Note: if you are using a regex pattern string (i.e. not already compiled), use lineMatching() instead + + :type pattern: Compiled regular expression pattern to use + :type lines: List of lines to search + + :return: the regular expression match for the first line that matches the specified regex, or None if no match was found + :rtype: re.Match + """ + for line in lines: + m = pattern.match(line) + if m: + return m + else: + return None + + +def allLinesMatchingPattern(pattern, lines): + """ Like lineMatchingPattern, but returns all lines that match the specified pattern + + :type pattern: Compiled regular expression pattern to use + :type lines: List of lines to search + + :return: list of re.Match objects for each line matched, or an empty list if none matched + :rtype: list + """ + result = [] + for line in lines: + m = pattern.match(line) + if m: + result.append(m) + return result + + +def removeAtPrefix(string): + """ Remove AT prefix from a specified string. + + :param string: An original string + :type string: str + + :return: A string with AT prefix removed + :rtype: str + """ + if string.startswith('AT'): + return string[2:] + return string From 444d06b83b8acc07a3f5fb0b0fac46cef222484f Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Wed, 16 Mar 2022 21:36:33 +0100 Subject: [PATCH 02/43] integrate the gsmmodem into project --- gsmmodem/models/Call.py | 80 +++++++++++ gsmmodem/models/IncomingCall.py | 40 ++++++ gsmmodem/models/ReceivedSms.py | 27 ++++ gsmmodem/models/SentSms.py | 27 ++++ gsmmodem/models/Sms.py | 24 ++++ gsmmodem/models/StatusReport.py | 24 ++++ gsmmodem/models/__init__.py | 0 gsmmodem/modem.py | 244 +++----------------------------- gsmmodem/pdu.py | 5 - 9 files changed, 243 insertions(+), 228 deletions(-) create mode 100644 gsmmodem/models/Call.py create mode 100644 gsmmodem/models/IncomingCall.py create mode 100644 gsmmodem/models/ReceivedSms.py create mode 100644 gsmmodem/models/SentSms.py create mode 100644 gsmmodem/models/Sms.py create mode 100644 gsmmodem/models/StatusReport.py create mode 100644 gsmmodem/models/__init__.py diff --git a/gsmmodem/models/Call.py b/gsmmodem/models/Call.py new file mode 100644 index 0000000..757f9e2 --- /dev/null +++ b/gsmmodem/models/Call.py @@ -0,0 +1,80 @@ +import weakref + +from gsmmodem.exceptions import CmeError, InterruptedException, InvalidStateException + + +class Call(object): + """ A voice call """ + + DTMF_COMMAND_BASE = '+VTS=' + dtmfSupport = False # Indicates whether or not DTMF tones can be sent in calls + + def __init__(self, gsmModem, callId, callType, number, callStatusUpdateCallbackFunc=None): + """ + :param gsmModem: GsmModem instance that created this object + :param number: The number that is being called + """ + self._gsmModem = weakref.proxy(gsmModem) + self._callStatusUpdateCallbackFunc = callStatusUpdateCallbackFunc + # Unique ID of this call + self.id = callId + # Call type (VOICE == 0, etc) + self.type = callType + # The remote number of this call (destination or origin) + self.number = number + # Flag indicating whether the call has been answered or not (backing field for "answered" property) + self._answered = False + # Flag indicating whether or not the call is active + # (meaning it may be ringing or answered, but not ended because of a hangup event) + self.active = True + + @property + def answered(self): + return self._answered + + @answered.setter + def answered(self, answered): + self._answered = answered + if self._callStatusUpdateCallbackFunc: + self._callStatusUpdateCallbackFunc(self) + + def sendDtmfTone(self, tones): + """ Send one or more DTMF tones to the remote party (only allowed for an answered call) + + Note: this is highly device-dependent, and might not work + + :param digits: A str containining one or more DTMF tones to play, e.g. "3" or "\*123#" + + :raise CommandError: if the command failed/is not supported + :raise InvalidStateException: if the call has not been answered, or is ended while the command is still executing + """ + if self.answered: + dtmfCommandBase = self.DTMF_COMMAND_BASE.format(cid=self.id) + toneLen = len(tones) + for tone in list(tones): + try: + self._gsmModem.write('AT{0}{1}'.format(dtmfCommandBase, tone), timeout=(5 + toneLen)) + + except CmeError as e: + if e.code == 30: + # No network service - can happen if call is ended during DTMF transmission (but also if DTMF is sent immediately after call is answered) + raise InterruptedException('No network service', e) + elif e.code == 3: + # Operation not allowed - can happen if call is ended during DTMF transmission + raise InterruptedException('Operation not allowed', e) + else: + raise e + else: + raise InvalidStateException('Call is not active (it has not yet been answered, or it has ended).') + + def hangup(self): + """ End the phone call. + + Does nothing if the call is already inactive. + """ + if self.active: + self._gsmModem.write('ATH') + self.answered = False + self.active = False + if self.id in self._gsmModem.activeCalls: + del self._gsmModem.activeCalls[self.id] diff --git a/gsmmodem/models/IncomingCall.py b/gsmmodem/models/IncomingCall.py new file mode 100644 index 0000000..917ef9e --- /dev/null +++ b/gsmmodem/models/IncomingCall.py @@ -0,0 +1,40 @@ +from gsmmodem.modem import Call + + +class IncomingCall(Call): + + CALL_TYPE_MAP = {'VOICE': 0} + + """ Represents an incoming call, conveniently allowing access to call meta information and -control """ + def __init__(self, gsmModem, number, ton, callerName, callId, callType): + """ + :param gsmModem: GsmModem instance that created this object + :param number: Caller number + :param ton: TON (type of number/address) in integer format + :param callType: Type of the incoming call (VOICE, FAX, DATA, etc) + """ + if callType in self.CALL_TYPE_MAP: + callType = self.CALL_TYPE_MAP[callType] + super(IncomingCall, self).__init__(gsmModem, callId, callType, number) + # Type attribute of the incoming call + self.ton = ton + self.callerName = callerName + # Flag indicating whether the call is ringing or not + self.ringing = True + # Amount of times this call has rung (before answer/hangup) + self.ringCount = 1 + + def answer(self): + """ Answer the phone call. + :return: self (for chaining method calls) + """ + if self.ringing: + self._gsmModem.write('ATA') + self.ringing = False + self.answered = True + return self + + def hangup(self): + """ End the phone call. """ + self.ringing = False + super(IncomingCall, self).hangup() \ No newline at end of file diff --git a/gsmmodem/models/ReceivedSms.py b/gsmmodem/models/ReceivedSms.py new file mode 100644 index 0000000..60edd23 --- /dev/null +++ b/gsmmodem/models/ReceivedSms.py @@ -0,0 +1,27 @@ +import weakref + +from gsmmodem.models.Sms import Sms + + +class ReceivedSms(Sms): + """ An SMS message that has been received (MT) """ + + def __init__(self, gsmModem, status, number, time, text, smsc=None, udh=[], index=None): + super(ReceivedSms, self).__init__(number, text, smsc) + self._gsmModem = weakref.proxy(gsmModem) + self.status = status + self.time = time + self.udh = udh + self.index = index + + def reply(self, message): + """ Convenience method that sends a reply SMS to the sender of this message """ + return self._gsmModem.sendSms(self.number, message) + + def sendSms(self, dnumber, message): + """ Convenience method that sends a SMS to someone else """ + return self._gsmModem.sendSms(dnumber, message) + + def getModem(self): + """ Convenience method that returns the gsm modem instance """ + return self._gsmModem diff --git a/gsmmodem/models/SentSms.py b/gsmmodem/models/SentSms.py new file mode 100644 index 0000000..ff032c8 --- /dev/null +++ b/gsmmodem/models/SentSms.py @@ -0,0 +1,27 @@ +from gsmmodem.models.Sms import Sms +from gsmmodem.models.StatusReport import StatusReport + + +class SentSms(Sms): + """ An SMS message that has been sent (MO) """ + + ENROUTE = 0 # Status indicating message is still enroute to destination + DELIVERED = 1 # Status indicating message has been received by destination handset + FAILED = 2 # Status indicating message delivery has failed + + def __init__(self, number, text, reference, smsc=None): + super(SentSms, self).__init__(number, text, smsc) + self.report = None # Status report for this SMS (StatusReport object) + self.reference = reference + + @property + def status(self): + """ Status of this SMS. Can be ENROUTE, DELIVERED or FAILED + + The actual status report object may be accessed via the 'report' attribute + if status is 'DELIVERED' or 'FAILED' + """ + if self.report == None: + return SentSms.ENROUTE + else: + return SentSms.DELIVERED if self.report.deliveryStatus == StatusReport.DELIVERED else SentSms.FAILED diff --git a/gsmmodem/models/Sms.py b/gsmmodem/models/Sms.py new file mode 100644 index 0000000..fc7f711 --- /dev/null +++ b/gsmmodem/models/Sms.py @@ -0,0 +1,24 @@ +import abc + + +class Sms(object): + """ Abstract SMS message base class """ + __metaclass__ = abc.ABCMeta + + # Some constants to ease handling SMS statuses + STATUS_RECEIVED_UNREAD = 0 + STATUS_RECEIVED_READ = 1 + STATUS_STORED_UNSENT = 2 + STATUS_STORED_SENT = 3 + STATUS_ALL = 4 + # ...and a handy converter for text mode statuses + TEXT_MODE_STATUS_MAP = {'REC UNREAD': STATUS_RECEIVED_UNREAD, + 'REC READ': STATUS_RECEIVED_READ, + 'STO UNSENT': STATUS_STORED_UNSENT, + 'STO SENT': STATUS_STORED_SENT, + 'ALL': STATUS_ALL} + + def __init__(self, number, text, smsc=None): + self.number = number + self.text = text + self.smsc = smsc \ No newline at end of file diff --git a/gsmmodem/models/StatusReport.py b/gsmmodem/models/StatusReport.py new file mode 100644 index 0000000..b58a2d6 --- /dev/null +++ b/gsmmodem/models/StatusReport.py @@ -0,0 +1,24 @@ +import weakref + +from gsmmodem.models.Sms import Sms + + +class StatusReport(Sms): + """ An SMS status/delivery report + + Note: the 'status' attribute of this class refers to this status report SM's status (whether + it has been read, etc). To find the status of the message that caused this status report, + use the 'deliveryStatus' attribute. + """ + + DELIVERED = 0 # SMS delivery status: delivery successful + FAILED = 68 # SMS delivery status: delivery failed + + def __init__(self, gsmModem, status, reference, number, timeSent, timeFinalized, deliveryStatus, smsc=None): + super(StatusReport, self).__init__(number, None, smsc) + self._gsmModem = weakref.proxy(gsmModem) + self.status = status + self.reference = reference + self.timeSent = timeSent + self.timeFinalized = timeFinalized + self.deliveryStatus = deliveryStatus diff --git a/gsmmodem/models/__init__.py b/gsmmodem/models/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/gsmmodem/modem.py b/gsmmodem/modem.py index a436172..efacd14 100644 --- a/gsmmodem/modem.py +++ b/gsmmodem/modem.py @@ -2,18 +2,27 @@ """ High-level API classes for an attached GSM modem """ -import sys, re, logging, weakref, time, threading, abc, codecs -from datetime import datetime -from time import sleep +import logging +import re +import sys +import threading +import time +import weakref -from .serial_comms import SerialComms -from .exceptions import CommandError, InvalidStateException, CmeError, CmsError, InterruptedException, TimeoutException, PinRequiredError, IncorrectPinError, SmscNumberUnknownError -from .pdu import encodeSmsSubmitPdu, decodeSmsPdu, encodeGsm7, encodeTextMode -from .util import SimpleOffsetTzInfo, lineStartingWith, allLinesMatchingPattern, parseTextModeTimeStr, removeAtPrefix - -#from . import compat # For Python 2.6 compatibility -from gsmmodem.util import lineMatching from gsmmodem.exceptions import EncodingError +from gsmmodem.util import lineMatching +from .exceptions import CommandError, InvalidStateException, CmeError, CmsError, TimeoutException, PinRequiredError, \ + SmscNumberUnknownError +from .models.Call import Call +from .models.IncomingCall import IncomingCall +from .models.ReceivedSms import ReceivedSms +from .models.SentSms import SentSms +from .models.Sms import Sms +from .models.StatusReport import StatusReport +from .pdu import encodeSmsSubmitPdu, decodeSmsPdu, encodeGsm7, encodeTextMode +from .serial_comms import SerialComms +from .util import lineStartingWith, parseTextModeTimeStr, removeAtPrefix + PYTHON_VERSION = sys.version_info[0] CTRLZ = '\x1a' @@ -23,102 +32,6 @@ if PYTHON_VERSION >= 3: xrange = range dictValuesIter = dict.values dictItemsIter = dict.items -else: #pragma: no cover - dictValuesIter = dict.itervalues - dictItemsIter = dict.iteritems - - -class Sms(object): - """ Abstract SMS message base class """ - __metaclass__ = abc.ABCMeta - - # Some constants to ease handling SMS statuses - STATUS_RECEIVED_UNREAD = 0 - STATUS_RECEIVED_READ = 1 - STATUS_STORED_UNSENT = 2 - STATUS_STORED_SENT = 3 - STATUS_ALL = 4 - # ...and a handy converter for text mode statuses - TEXT_MODE_STATUS_MAP = {'REC UNREAD': STATUS_RECEIVED_UNREAD, - 'REC READ': STATUS_RECEIVED_READ, - 'STO UNSENT': STATUS_STORED_UNSENT, - 'STO SENT': STATUS_STORED_SENT, - 'ALL': STATUS_ALL} - - def __init__(self, number, text, smsc=None): - self.number = number - self.text = text - self.smsc = smsc - - -class ReceivedSms(Sms): - """ An SMS message that has been received (MT) """ - - def __init__(self, gsmModem, status, number, time, text, smsc=None, udh=[], index=None): - super(ReceivedSms, self).__init__(number, text, smsc) - self._gsmModem = weakref.proxy(gsmModem) - self.status = status - self.time = time - self.udh = udh - self.index = index - - def reply(self, message): - """ Convenience method that sends a reply SMS to the sender of this message """ - return self._gsmModem.sendSms(self.number, message) - - def sendSms(self, dnumber, message): - """ Convenience method that sends a SMS to someone else """ - return self._gsmModem.sendSms(dnumber, message) - - def getModem(self): - """ Convenience method that returns the gsm modem instance """ - return self._gsmModem - -class SentSms(Sms): - """ An SMS message that has been sent (MO) """ - - ENROUTE = 0 # Status indicating message is still enroute to destination - DELIVERED = 1 # Status indicating message has been received by destination handset - FAILED = 2 # Status indicating message delivery has failed - - def __init__(self, number, text, reference, smsc=None): - super(SentSms, self).__init__(number, text, smsc) - self.report = None # Status report for this SMS (StatusReport object) - self.reference = reference - - @property - def status(self): - """ Status of this SMS. Can be ENROUTE, DELIVERED or FAILED - - The actual status report object may be accessed via the 'report' attribute - if status is 'DELIVERED' or 'FAILED' - """ - if self.report == None: - return SentSms.ENROUTE - else: - return SentSms.DELIVERED if self.report.deliveryStatus == StatusReport.DELIVERED else SentSms.FAILED - - -class StatusReport(Sms): - """ An SMS status/delivery report - - Note: the 'status' attribute of this class refers to this status report SM's status (whether - it has been read, etc). To find the status of the message that caused this status report, - use the 'deliveryStatus' attribute. - """ - - DELIVERED = 0 # SMS delivery status: delivery successful - FAILED = 68 # SMS delivery status: delivery failed - - def __init__(self, gsmModem, status, reference, number, timeSent, timeFinalized, deliveryStatus, smsc=None): - super(StatusReport, self).__init__(number, None, smsc) - self._gsmModem = weakref.proxy(gsmModem) - self.status = status - self.reference = reference - self.timeSent = timeSent - self.timeFinalized = timeFinalized - self.deliveryStatus = deliveryStatus - class GsmModem(SerialComms): """ Main class for interacting with an attached GSM modem """ @@ -434,7 +347,7 @@ class GsmModem(SerialComms): else: raise PinRequiredError('AT+CPIN') - def write(self, data, waitForResponse=True, timeout=10, parseError=True, writeTerm=TERMINATOR, expectedResponseTermSeq=None): + def write(self, data, waitForResponse=True, timeout:float =10, parseError=True, writeTerm=TERMINATOR, expectedResponseTermSeq=None): """ Write data to the modem. This method adds the ``\\r\\n`` end-of-line sequence to the data parameter, and @@ -1290,7 +1203,7 @@ class GsmModem(SerialComms): call = activeCall call.ringCount += 1 if call == None: - callId = len(self.activeCalls) + 1; + callId = len(self.activeCalls) + 1 call = IncomingCall(self, callerNumber, ton, callerName, callId, callType) self.activeCalls[callId] = call self.incomingCallCallback(call) @@ -1601,121 +1514,6 @@ class GsmModem(SerialComms): if timeLeft <= 0: raise TimeoutException() - -class Call(object): - """ A voice call """ - - DTMF_COMMAND_BASE = '+VTS=' - dtmfSupport = False # Indicates whether or not DTMF tones can be sent in calls - - def __init__(self, gsmModem, callId, callType, number, callStatusUpdateCallbackFunc=None): - """ - :param gsmModem: GsmModem instance that created this object - :param number: The number that is being called - """ - self._gsmModem = weakref.proxy(gsmModem) - self._callStatusUpdateCallbackFunc = callStatusUpdateCallbackFunc - # Unique ID of this call - self.id = callId - # Call type (VOICE == 0, etc) - self.type = callType - # The remote number of this call (destination or origin) - self.number = number - # Flag indicating whether the call has been answered or not (backing field for "answered" property) - self._answered = False - # Flag indicating whether or not the call is active - # (meaning it may be ringing or answered, but not ended because of a hangup event) - self.active = True - - @property - def answered(self): - return self._answered - @answered.setter - def answered(self, answered): - self._answered = answered - if self._callStatusUpdateCallbackFunc: - self._callStatusUpdateCallbackFunc(self) - - def sendDtmfTone(self, tones): - """ Send one or more DTMF tones to the remote party (only allowed for an answered call) - - Note: this is highly device-dependent, and might not work - - :param digits: A str containining one or more DTMF tones to play, e.g. "3" or "\*123#" - - :raise CommandError: if the command failed/is not supported - :raise InvalidStateException: if the call has not been answered, or is ended while the command is still executing - """ - if self.answered: - dtmfCommandBase = self.DTMF_COMMAND_BASE.format(cid=self.id) - toneLen = len(tones) - for tone in list(tones): - try: - self._gsmModem.write('AT{0}{1}'.format(dtmfCommandBase,tone), timeout=(5 + toneLen)) - - except CmeError as e: - if e.code == 30: - # No network service - can happen if call is ended during DTMF transmission (but also if DTMF is sent immediately after call is answered) - raise InterruptedException('No network service', e) - elif e.code == 3: - # Operation not allowed - can happen if call is ended during DTMF transmission - raise InterruptedException('Operation not allowed', e) - else: - raise e - else: - raise InvalidStateException('Call is not active (it has not yet been answered, or it has ended).') - - def hangup(self): - """ End the phone call. - - Does nothing if the call is already inactive. - """ - if self.active: - self._gsmModem.write('ATH') - self.answered = False - self.active = False - if self.id in self._gsmModem.activeCalls: - del self._gsmModem.activeCalls[self.id] - - -class IncomingCall(Call): - - CALL_TYPE_MAP = {'VOICE': 0} - - """ Represents an incoming call, conveniently allowing access to call meta information and -control """ - def __init__(self, gsmModem, number, ton, callerName, callId, callType): - """ - :param gsmModem: GsmModem instance that created this object - :param number: Caller number - :param ton: TON (type of number/address) in integer format - :param callType: Type of the incoming call (VOICE, FAX, DATA, etc) - """ - if callType in self.CALL_TYPE_MAP: - callType = self.CALL_TYPE_MAP[callType] - super(IncomingCall, self).__init__(gsmModem, callId, callType, number) - # Type attribute of the incoming call - self.ton = ton - self.callerName = callerName - # Flag indicating whether the call is ringing or not - self.ringing = True - # Amount of times this call has rung (before answer/hangup) - self.ringCount = 1 - - def answer(self): - """ Answer the phone call. - :return: self (for chaining method calls) - """ - if self.ringing: - self._gsmModem.write('ATA') - self.ringing = False - self.answered = True - return self - - def hangup(self): - """ End the phone call. """ - self.ringing = False - super(IncomingCall, self).hangup() - class Ussd(object): """ Unstructured Supplementary Service Data (USSD) message. diff --git a/gsmmodem/pdu.py b/gsmmodem/pdu.py index a3e28e8..167ce2f 100644 --- a/gsmmodem/pdu.py +++ b/gsmmodem/pdu.py @@ -18,11 +18,6 @@ if PYTHON_VERSION >= 3: unichr = chr toByteArray = lambda x: bytearray(codecs.decode(x, 'hex_codec')) if type(x) == bytes else bytearray(codecs.decode(bytes(x, 'ascii'), 'hex_codec')) if type(x) == str else x rawStrToByteArray = lambda x: bytearray(bytes(x, 'latin-1')) -else: #pragma: no cover - MAX_INT = sys.maxint - dictItemsIter = dict.iteritems - toByteArray = lambda x: bytearray(x.decode('hex')) if type(x) in (str, unicode) else x - rawStrToByteArray = bytearray TEXT_MODE = ('\n\r !\"#%&\'()*+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz') # TODO: Check if all of them are supported inside text mode # Tables can be found at: http://en.wikipedia.org/wiki/GSM_03.38#GSM_7_bit_default_alphabet_and_extension_table_of_3GPP_TS_23.038_.2F_GSM_03.38 From 0ec824d7ccec223c0d649352df71ba9e39477d74 Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Sun, 20 Mar 2022 18:19:39 +0100 Subject: [PATCH 03/43] use playwright to simulate mobile browser --- commandor_page.py | 102 +++++++++++++++++++++++++++++++++++++++++++++ valid_profile.xlsx | Bin 18337 -> 18371 bytes 2 files changed, 102 insertions(+) create mode 100644 commandor_page.py diff --git a/commandor_page.py b/commandor_page.py new file mode 100644 index 0000000..b1c0a28 --- /dev/null +++ b/commandor_page.py @@ -0,0 +1,102 @@ +import subprocess +import time + +import playwright +from playwright.sync_api import sync_playwright + +from pojo.contact_pojo import ContactPojo + +# RDV_URL = "https://rendezvousparis.hermes.com/client/register" +RDV_URL = "file:///Users/lpan/Downloads/test_appointment.html" + + +# RDV_URL = "https://www.google.fr" + + +# RDV_URL = "https://api.ipify.org" + + +class CommandorPage: + def __init__(self): + pass + + def start_page(self, proxy, contact: ContactPojo): + # specifying an explicit component name + with sync_playwright() as pwright: + self.browser = pwright.chromium.launch(headless=False, timeout=30000, proxy=proxy) + self.page = self.browser.new_page( + user_agent="Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.87 Mobile Safari/537.36") + self.page.goto(RDV_URL) + content = self.page.content() + self.setPhoneCountry(self.page) + self.setPhoneNumber(contact.phone) + self.setName(contact.last_name, contact.first_name) + self.setEmail(contact.mail) + self.setIdNumber(contact.passport) + self.checkCgu() + self.clickOnValidBtn() + # page.on('load', self.on_page_loaded) + print(content) + time.sleep(100000) + + def on_page_loaded(self): + print("page loaded") + + def setPhoneCountry(self, page): + page.evaluate("""()=>document.getElementById("phone_country").value = \"FR\" """) + + def setPhoneNumber(self, phoneNumber): + self.page.evaluate("""(phoneNumber)=>document.getElementById("phone_number").value =phoneNumber""", phoneNumber) + + def setName(self, lastName, firstName): + self.page.evaluate("""(name)=> { + document.getElementById("surname").value = name.lastName; + document.getElementById("name").value = name.firstName}""", {'lastName': lastName, 'firstName': firstName}) + + def setEmail(self, email): + self.page.evaluate("""(email)=>document.getElementById("email").value = email""", email) + + def setIdNumber(self, id): + self.page.evaluate(""" (id) => document.getElementById("passport_id").value = id""", id) + + def checkCgu(self): + self.page.evaluate("""document.getElementById("cgu").checked = true; + document.getElementById("processing").checked = true""") + + def clickOnValidBtn(self): + self.page.evaluate("""document.getElementsByClassName("btn")[0].click();""") + + def clear_app_data(self): + pass + + def send_otp(self, otp: str): + self.page.evaluate(""" (otp)=> document.getElementById("sms_code").value = otp""", otp) + + def reset_air_plan_mode(self): + subprocess.call( + "/Users/panlei/Library/Android/sdk/platform-tools/adb shell settings put global airplane_mode_on 1", + shell=True) + time.sleep(1) + subprocess.call( + "/Users/panlei/Library/Android/sdk/platform-tools/adb shell am broadcast -a android.intent.action.AIRPLANE_MODE", + shell=True) + time.sleep(1) + subprocess.call( + "/Users/panlei/Library/Android/sdk/platform-tools/adb shell settings put global airplane_mode_on 0", + shell=True) + time.sleep(1) + subprocess.call( + "/Users/panlei/Library/Android/sdk/platform-tools/adb shell am broadcast -a android.intent.action.AIRPLANE_MODE", + shell=True) + time.sleep(10) + + +if __name__ == '__main__': + proxy = { + "server": "http://gw.ntnt.io:5959", + "username": "panleicim-cc-any-sid-1112", + "password": "M3PZAXgW5V27" + } + contact = ContactPojo(phone_number="755667750", passport_number="5123456789", last_name="PAN", first_name="Lei", + mail="panleicim@gmail.com", ccid="", position=0) + CommandorPage().start_page(None, contact) diff --git a/valid_profile.xlsx b/valid_profile.xlsx index 781212e3d8e6ca497a17751b21b3591db08b3523..4b9fac9c29c7d772e9fbebe2a64b28a291db06eb 100644 GIT binary patch delta 11470 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 eC*=S7YAgZ*$z2Hi=TBax Date: Mon, 21 Mar 2022 10:36:26 +0100 Subject: [PATCH 04/43] need to start playwright in async --- commandor_page.py | 79 ++++++++++++++++++++++++++++------------------- 1 file changed, 48 insertions(+), 31 deletions(-) diff --git a/commandor_page.py b/commandor_page.py index b1c0a28..25edf1d 100644 --- a/commandor_page.py +++ b/commandor_page.py @@ -1,7 +1,9 @@ +import asyncio import subprocess import time import playwright +from playwright.async_api import async_playwright from playwright.sync_api import sync_playwright from pojo.contact_pojo import ContactPojo @@ -20,51 +22,52 @@ class CommandorPage: def __init__(self): pass - def start_page(self, proxy, contact: ContactPojo): + async def start_page(self, proxy, contact: ContactPojo): # specifying an explicit component name - with sync_playwright() as pwright: - self.browser = pwright.chromium.launch(headless=False, timeout=30000, proxy=proxy) - self.page = self.browser.new_page( + async with async_playwright() as pwright: + self.browser = await pwright.chromium.launch(headless=False, timeout=30000, proxy=proxy) + self.page = await self.browser.new_page( user_agent="Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.87 Mobile Safari/537.36") - self.page.goto(RDV_URL) - content = self.page.content() - self.setPhoneCountry(self.page) - self.setPhoneNumber(contact.phone) - self.setName(contact.last_name, contact.first_name) - self.setEmail(contact.mail) - self.setIdNumber(contact.passport) - self.checkCgu() - self.clickOnValidBtn() + await self.page.goto(RDV_URL) + content = await self.page.content() + await self.setPhoneCountry() + await self.setPhoneNumber(contact.phone) + await self.setName(contact.last_name, contact.first_name) + await self.setEmail(contact.mail) + await self.setIdNumber(contact.passport) + await self.checkCgu() + await self.clickOnValidBtn() # page.on('load', self.on_page_loaded) print(content) - time.sleep(100000) + await asyncio.sleep(1000) def on_page_loaded(self): print("page loaded") - def setPhoneCountry(self, page): - page.evaluate("""()=>document.getElementById("phone_country").value = \"FR\" """) + async def setPhoneCountry(self): + await self.page.evaluate("""()=>document.getElementById("phone_country").value = \"FR\" """) - def setPhoneNumber(self, phoneNumber): - self.page.evaluate("""(phoneNumber)=>document.getElementById("phone_number").value =phoneNumber""", phoneNumber) + async def setPhoneNumber(self, phoneNumber): + await self.page.evaluate("""(phoneNumber)=>document.getElementById("phone_number").value =phoneNumber""", + phoneNumber) - def setName(self, lastName, firstName): - self.page.evaluate("""(name)=> { + async def setName(self, lastName, firstName): + await self.page.evaluate("""(name)=> { document.getElementById("surname").value = name.lastName; document.getElementById("name").value = name.firstName}""", {'lastName': lastName, 'firstName': firstName}) - def setEmail(self, email): - self.page.evaluate("""(email)=>document.getElementById("email").value = email""", email) + async def setEmail(self, email): + await self.page.evaluate("""(email)=>document.getElementById("email").value = email""", email) - def setIdNumber(self, id): - self.page.evaluate(""" (id) => document.getElementById("passport_id").value = id""", id) + async def setIdNumber(self, id): + await self.page.evaluate(""" (id) => document.getElementById("passport_id").value = id""", id) - def checkCgu(self): - self.page.evaluate("""document.getElementById("cgu").checked = true; + async def checkCgu(self): + await self.page.evaluate("""document.getElementById("cgu").checked = true; document.getElementById("processing").checked = true""") - def clickOnValidBtn(self): - self.page.evaluate("""document.getElementsByClassName("btn")[0].click();""") + async def clickOnValidBtn(self): + await self.page.evaluate("""document.getElementsByClassName("btn")[0].click();""") def clear_app_data(self): pass @@ -91,12 +94,26 @@ class CommandorPage: time.sleep(10) +async def main(): + contact = ContactPojo(phone_number="755667750", passport_number="5123456789", last_name="PAN", first_name="Lei", + mail="panleicim@gmail.com", ccid="", position=0) + page = CommandorPage() + await page.start_page(None, contact) + # task = asyncio.create_task(wait_for_otp()) + # await task + + +async def wait_for_otp(): + sec = input("Press Enter to continue...") + time.sleep(20) + print("input otp is: " + sec) + + if __name__ == '__main__': proxy = { "server": "http://gw.ntnt.io:5959", "username": "panleicim-cc-any-sid-1112", "password": "M3PZAXgW5V27" } - contact = ContactPojo(phone_number="755667750", passport_number="5123456789", last_name="PAN", first_name="Lei", - mail="panleicim@gmail.com", ccid="", position=0) - CommandorPage().start_page(None, contact) + asyncio.gather(main(), wait_for_otp()) + time.sleep(1000) From a5b172d4d6bf7439ee17b0bfa101debfee577ebe Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Mon, 21 Mar 2022 17:13:11 +0100 Subject: [PATCH 05/43] add user-agent list --- commandor_page.py | 169 ++++++++++++++++++------------- docs/mobile_user_agent_list.xlsx | Bin 0 -> 114603 bytes utils/excel_reader.py | 16 ++- 3 files changed, 113 insertions(+), 72 deletions(-) create mode 100644 docs/mobile_user_agent_list.xlsx diff --git a/commandor_page.py b/commandor_page.py index 25edf1d..f7a608b 100644 --- a/commandor_page.py +++ b/commandor_page.py @@ -1,15 +1,18 @@ import asyncio -import subprocess +import logging +import random +import threading import time +from concurrent.futures import ProcessPoolExecutor -import playwright -from playwright.async_api import async_playwright from playwright.sync_api import sync_playwright from pojo.contact_pojo import ContactPojo +from utils.excel_reader import ExcelHelper -# RDV_URL = "https://rendezvousparis.hermes.com/client/register" -RDV_URL = "file:///Users/lpan/Downloads/test_appointment.html" +RDV_URL = "https://rendezvousparis.hermes.com/client/register" + +# RDV_URL = "file:///Users/lpan/Downloads/test_appointment.html" # RDV_URL = "https://www.google.fr" @@ -17,103 +20,129 @@ RDV_URL = "file:///Users/lpan/Downloads/test_appointment.html" # RDV_URL = "https://api.ipify.org" +global_page = None +otp_value = None +user_agent_list = ExcelHelper().read_user_agent_list() + class CommandorPage: def __init__(self): pass - async def start_page(self, proxy, contact: ContactPojo): + def _run(self, e: threading.Event, proxy, contact): + with sync_playwright() as pwright: + self.browser = pwright.chromium.launch(headless=False, timeout=90000, proxy=proxy) + self.page = self.browser.new_page( + user_agent=random.choice(user_agent_list)) + global global_page + global_page = self + self.page.on("load", self.on_page_loaded) + self.page.goto(RDV_URL, timeout=90000) + # content = self.page.content() + self.setPhoneCountry() + self.setPhoneNumber(contact.phone) + self.setName(contact.last_name, contact.first_name) + self.setEmail(contact.mail) + self.setIdNumber(contact.passport) + self.checkCgu() + self.page.on("domcontentloaded", self.on_document_loaded) + self.clickOnValidBtn() + event_is_set = e.wait() + logging.debug('event set: %s', event_is_set) + global otp_value + self.send_otp(otp_value) + self.clickOnValidBtn() + self.page.on("load", self.on_page_loaded) + time.sleep(4000) + # time.sleep(1000) + + def start_page(self, proxy, contact: ContactPojo) -> threading.Event: # specifying an explicit component name - async with async_playwright() as pwright: - self.browser = await pwright.chromium.launch(headless=False, timeout=30000, proxy=proxy) - self.page = await self.browser.new_page( - user_agent="Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.87 Mobile Safari/537.36") - await self.page.goto(RDV_URL) - content = await self.page.content() - await self.setPhoneCountry() - await self.setPhoneNumber(contact.phone) - await self.setName(contact.last_name, contact.first_name) - await self.setEmail(contact.mail) - await self.setIdNumber(contact.passport) - await self.checkCgu() - await self.clickOnValidBtn() - # page.on('load', self.on_page_loaded) - print(content) - await asyncio.sleep(1000) + e = threading.Event() + t = threading.Thread(target=self._run, args=(e, proxy, contact)) + t.start() + return e def on_page_loaded(self): print("page loaded") + print("content is " + self.page.content()) + print("url is " + self.page.url) + self.getErrors() - async def setPhoneCountry(self): - await self.page.evaluate("""()=>document.getElementById("phone_country").value = \"FR\" """) + def on_response(self): + print("on_response called") - async def setPhoneNumber(self, phoneNumber): - await self.page.evaluate("""(phoneNumber)=>document.getElementById("phone_number").value =phoneNumber""", - phoneNumber) + def on_document_loaded(self): + print("on_document_loaded called") - async def setName(self, lastName, firstName): - await self.page.evaluate("""(name)=> { + def setPhoneCountry(self): + self.page.evaluate("""()=>document.getElementById("phone_country").value = \"FR\" """) + + def setPhoneNumber(self, phoneNumber): + self.page.evaluate("""(phoneNumber)=>document.getElementById("phone_number").value =phoneNumber""", + phoneNumber) + + def setName(self, lastName, firstName): + self.page.evaluate("""(name)=> { document.getElementById("surname").value = name.lastName; document.getElementById("name").value = name.firstName}""", {'lastName': lastName, 'firstName': firstName}) - async def setEmail(self, email): - await self.page.evaluate("""(email)=>document.getElementById("email").value = email""", email) + def getErrors(self): + items = self.page.query_selector(".alert") + if items: + print(items.inner_html()) - async def setIdNumber(self, id): - await self.page.evaluate(""" (id) => document.getElementById("passport_id").value = id""", id) + def setEmail(self, email): + self.page.evaluate("""(email)=>document.getElementById("email").value = email""", email) - async def checkCgu(self): - await self.page.evaluate("""document.getElementById("cgu").checked = true; + def setIdNumber(self, id): + self.page.evaluate(""" (id) => document.getElementById("passport_id").value = id""", id) + + def checkCgu(self): + self.page.evaluate("""document.getElementById("cgu").checked = true; document.getElementById("processing").checked = true""") - async def clickOnValidBtn(self): - await self.page.evaluate("""document.getElementsByClassName("btn")[0].click();""") + def clickOnValidBtn(self): + self.page.evaluate("""document.getElementsByClassName("btn")[0].click();""") def clear_app_data(self): pass def send_otp(self, otp: str): - self.page.evaluate(""" (otp)=> document.getElementById("sms_code").value = otp""", otp) + self.page.evaluate("""(otp)=> document.getElementById("sms_code").value = otp""", otp) def reset_air_plan_mode(self): - subprocess.call( - "/Users/panlei/Library/Android/sdk/platform-tools/adb shell settings put global airplane_mode_on 1", - shell=True) - time.sleep(1) - subprocess.call( - "/Users/panlei/Library/Android/sdk/platform-tools/adb shell am broadcast -a android.intent.action.AIRPLANE_MODE", - shell=True) - time.sleep(1) - subprocess.call( - "/Users/panlei/Library/Android/sdk/platform-tools/adb shell settings put global airplane_mode_on 0", - shell=True) - time.sleep(1) - subprocess.call( - "/Users/panlei/Library/Android/sdk/platform-tools/adb shell am broadcast -a android.intent.action.AIRPLANE_MODE", - shell=True) - time.sleep(10) + pass -async def main(): - contact = ContactPojo(phone_number="755667750", passport_number="5123456789", last_name="PAN", first_name="Lei", - mail="panleicim@gmail.com", ccid="", position=0) +def main(): + executor = ProcessPoolExecutor(2) + loop = asyncio.get_event_loop() + loop.run_in_executor(executor, wait_for_otp) + loop.run_in_executor(executor, launch_page) + + +def launch_page() -> threading.Event: + proxy = { + "server": "http://gw.ntnt.io:5959", + "username": "panleicim-cc-fr-sid-179112", + "password": "M3PZAXgW5V27" + } + contact = ContactPojo(phone_number="+33751177505", passport_number="9933251119", last_name="Chen", first_name="Fan", + mail="lei_chena09@outlook.com", ccid="", position=0) page = CommandorPage() - await page.start_page(None, contact) - # task = asyncio.create_task(wait_for_otp()) - # await task + return page.start_page(proxy, contact) -async def wait_for_otp(): - sec = input("Press Enter to continue...") - time.sleep(20) +def wait_for_otp(): + sec = input("Press Enter otp to continue...") + asyncio.sleep(1) print("input otp is: " + sec) if __name__ == '__main__': - proxy = { - "server": "http://gw.ntnt.io:5959", - "username": "panleicim-cc-any-sid-1112", - "password": "M3PZAXgW5V27" - } - asyncio.gather(main(), wait_for_otp()) - time.sleep(1000) + event = launch_page() + sec = input("Press Enter otp to continue...") + print("input otp is: " + sec) + otp_value = sec + event.set() diff --git a/docs/mobile_user_agent_list.xlsx b/docs/mobile_user_agent_list.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..a7ed222e204b2c344ba986679bc7a334fa92769d GIT binary patch literal 114603 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®Xrz*a8pQueiOK?|=Blqx@1+|I(@5qeK^7PZJ$gOZ!4&=VJ5qGPhM^_-oCU_(Pb9r>C;& zxm<*A-7cniWfx1?eTgleoq^wy5^=`M%(N_7kA2Cr$hdC_7Q9ry9h=&$ zbL~shsBdKN{_l6MWpaJ%FW!1)?{n;;s-y_%P}Qc^@X9_DpLeHqHTFplXjY!W5oIN( zkiUMn>%_pDLuNX!kHjDJ{dj0;o97cT?ag^-XLm;@^`+-^hSb;yC3}n4T^i5ZdU5{k zp{1>yS0xsNiqFe%aDUf`Ol@&n^b>XcCaywr=Hm7FkCR~uin~<~U$fgAw=92I&4Ve% z&T^SX{mAyFUh5p{_L$9%g_je(G<}b6Jw|jePNVmuGg0m*c{+s|XD;2_bIbWDUhLoQ znsqnijTbYNmwP`hcd&9A&3LR+hToi5vh+T*HL!fkSe!?J^vm9X_W~MU6x=L6QPAhP znZ%oIF)00j+f2UNs;w@HWjsU;!wqNNc$;$`6bc}KRV z-Yip1NE&C7^o1)+^!q8UN46d)jSTQzwCZ%2o6?R*CZhEqq99@$nf5I5Judj-MLmZJ zegVHcgKJy3onfmM&$Keso}IR2Qa;&X<(O_azo?0~62#o0TKQq?a9yP3_-Ot1Qv6~% zHozM{i(gK}&*6tKOiW=197YPdoN>)#ii(((sA}76oa2JyM1uzYn%FPJ+&KPrdd2yB zQ=g{hZ>OlWh_2+Si8*4&<`bHS95mw?SAJxuV=yAPdhBKi?2-xOcoqB?wo*UUWoDi- zpXp$;SW#Y$U#y^Z&Ky%NxTqgsR3urUH3CPlPPhrbqLt zw)`xr#|TF;VMak>7>0=p6%wsCvL8v9s&?~R=$;PfPh>n{f{k~!n&tm6r5e+0lx2h+ zA{)_Y4~)Ykjs`GPV8~k^@ZNAxy?bR@^vKTo_zNv6(^4UuoGhek-Rr4_W3RVJQ_=+6 zscR`*-Cp6GW6sqs80D7r!_KnLqB&3ayynotM97qZQ^R7-(2RFTPG2ofy$?5VtRMWQ zG%w{i_~WSsH+ZtfU-_z+#q>X=U_9~lZFm*G@E}zn?P1T&sjs55?YmB2sFV3+Z)L$| zQ-htDtmUFy9H}&1$}p+DYEnCqO@bNb6+JW2Bf%zidfCP?!2QUa%~p0Q$m@;u4U}9?N*TuF|+nxP>ji+RI44su=+Fp0a)fDTP z+wroe;0Id?z3bOf`j>{=+u1IashCt&FSJYF*Y3u4XSfL@x9*>9!sVK0HaMsYr8NIA zTlmr`A-1Qz!zO3N4jZg#*%HydJuAce`HPo)v;`rfnzom&iv?F?70`s##7DBoJSz}A zK|ZV_<@Z;m*Vzy7Tol4Bgp6WubU7=)3?9R>n za+gjEiy8c|$3?IXOm{ZTd0Uz`z4v6#Vi2sRuxgh3HFMy3;r)`Vwke!ddi~^oMw z@Tr4-_Bqx%@VQ@mrc0M~d6=_*Z&XJ-&Dn-7pNBK9EYFG09WRmFdrOnol9^aWCZ&pe zu35wM{BxyUC-Cw=f`vtmLrB%F$YOq}zhVJL0qV}`SW z^AEhojtBNqHQloJUJ*QV%IAE(;#T|T_b*IF?;a|C7!cvnCAoZ;)#B5&qW2%dLoVcM z=p4H!&SCcA<{plt)Alc7E4S!4$vs;zz%M&vD|z}ze1i`Tr!SF21ye*Fmb5h4G22vd zaN4Ld&-#m()V)KU$18MHtiR&5Rm%7e?ex9gPvgn|lW$oooK91Yz3q@eetRVN`S!)- zBD0i!%4U*q>f#Do9dY(g`f7bShs}%!A-l0pQrRN_vz_y{NjCu zDG=>8l#|tTm@#I_gx~XJswPzh{953jy$OVpcx-ImC3)kXjT)Sj*9#fLLFg`LY*z|^tTvh5j z$J>1pO!mA6Z??Ig{GhO__3f9}`E)NdRldJeH{-MkXl`#81b_BdFU`S5O(cR%e3wvY z@a)k@m#U$!(~Z5((;luTM&?2WzGj%4eaTL7u~$v>&87+dP$JxkVR1bXR7Wq+bupIM z)$gfkh0hU^dq4KQX<*!GJ9zlHb9Xb7pEAvtq5zelQt;Eusa`HVQA&qKlRi8-c;sp0?+e(cHaJbIcZ`Iwr@LZ+qa{0N=YT!!Ab1Q>AkrV%y_5!$)Rq1oUM`cx!UH}ed;4scD8)8|3-JneV^jl`l+hW zsiXCj?}HR)d>`d1c3qaZ`mAPNO~$+6?k~K&IRB1gjgc=tJY-w;800^4QBY03-nzVc zF_73lg#FMjU!q;zL8^Od{SUeqE8E?AAVc<^>@M}}Fc;o!$+38vZiX%X++Ib3xytk>v$&`@HJIhGkL;f8)|xuf*UHP+a~uv-d5p``Z>Q2c?^<l+?N9&K33cf-Ni z!D&7-T@~*hI7eV+#ySScdSc7i%IJX+CjU9E#jgaQKwR z)y+SyPd;js*>*tX!i1WdKJ%e?isRD~33MNo&y(HZVipeStLt3|;bo97NcevBo1Y9e zVB&U`X`*h|&8PT4n%L_^H?JHy#C@|r^Xk^q6TN5k?htc&-ichAlQcTH_3R8qa3GH4 z3)Krz{?gBMe20e8$;s2JRQ9^Hc9!1pa;6REv2A>0cB^0isEYNipb)NVH|4{gW6xUM zXu0f0vm5J|Gy&D;gH7wCVG~aJyVp5s{xZ17=-i-XhC| z&ns(VFTEqrWPM|{z}3OmcAUvT*K~1d&}pWtDsXeb@mC%Ea^Yuh22AQL6Lqr5dOP_Fh8uR#cvqc!VS+3BG>Q-v3IHtcz$?VFz9K|#){ToSZWx7(d>JT0|W zN7>g?trB|y-{_*hH#GBoYE9%r){lZ;FAho`4Rg^yu=(XXf%i%rsrRn&o{APGcl}AV zO_fW_w^n3Nk%QbLi6~>m8Orm1!w$g;y7nQpi%HUKyFF>T&yuj)zj}XpSY3FJx0*3` z2G&9>kv>ScFD9{#C~PUvQLQKM(2depv2UMrb`DJ5!WA_&o)PLuQxI5+yQU&X!Rc1# z@g>>Ak9aW3%=U857A1`I^QX681#r%5`%5>-+_4(7a-qg`+B&n3R2Y_T`&jB%C(@5yv30+TTBE{%M&kK7rKr=VExzJt^lP3kdNU5~j5FV!;#Sr4SmFsEV>{1{ zXHuU_D(PmfZuT)ZVf4Ee8LfXq*QfdB^MLOuKYq64#N-$AuyMbnJi@&&_LI)flMR39 z4c1`F6LZ{W`_w&u>8yM1HI-I2qETrdJ1*vl{(2Cod{T?=K-xnM^RA1hwSwbn{dC0h zD;yImL=6&e&V2s5EpHRi_d^DwZJtke@QJ@=yth*iXOmkf*Jb=gSH73EI+BIUyDM;j zxk#V#;@;@@dcJZUTVo8j{hHF}%)UtVs6K|@UN&xXW(IZkc#6Z|KKC0uP=JXF@cl+!?G@vH&3SxT?WcIF_`pkv-Fx)Nc=SZFzVZ0a`6iHWsu_{oslG?; zVc5{4e#u|8WXG1-CON9luqXLrUIt;Y@%3}!rf0m~zjrIFt8)K#`aI=X{=NrGXOize zAvKgTHhHCbNVzaQ;dLIPZcy03Q}d~hl(%H=>D9Otd1=RACw(0rFWDUWfba8sO}_W` z;&0ir2k$QQuHvW}{YPHE5o9GJvekPhvrf_j4|l+Iu3D6#FcW zFjB^-rKrsw>>Oxy&PG><7eB2Y7C(Nxa~_wA4Gp9O1C%&>?Vugx{~R>LqDK8A)>9iu z_r}-rL9>;iJqLDM67~Uau!vgiN#L+O0`#3719L9M87kATP}$KX7WAHAF8q#{bBBR zGZ_m`Qz#9Nj79!Rvr_41U0d-6dYB^rC`IIr>JzAA0ZEQv#Upfw7YF@JO1B$4H)Bo( ze3uwmpegpFisKYokH*%K1?vz^tfU1S1@+EN4;kL-&(;bZu*t@z2mvr^yXqC8#sM!J z4l&fA%_BS0=PzGY4;^R@{hdMRkLI~*Y9I=L(5(F8ODm!*$IH+qJoxEsION{F$bpxB%w{kuEwX-Hj9B9lg}?xRX6uK)ov72o z;b3Pzo?W7F5m<989^;NN|MHj_8!!pwB@D*#&<`1vt=lEHWyHx^F9KZ703uI0i>j6pZ(F@!&BBaC3e2xm3A`vCOl*8@YVCG1 zJff2G`NQ(&n)AKN?Qc5MOes}za6>A|J10H4LEc2$_V}aL@P>SwL|j3kdR!|W%`RuD zMrrKZL$fp%*s-FT2fiB*8WS@nhM-+HVHB+!y*DdiVWBwJUz@o`Wt_*>@)6c{+UmJj z+xY9{Xg0doiSRg+zqo!)t{Bh+QebPMg(gbt(G2v$3?`t8`$FPK$*oW_&@6Ce#M|6m z;aeWk(TtgNV(Io7QIHzzGWjyLjJ+!~fa-U6+vH9j7~S#E8*)X@vdY45+q7p$SRVxX z?;Ke-pyadHdpdRn&8B#yIvY~BsA z7&1}&$lReR6<1|tvH-u&I5h#~$i*&_9?P9BoLK{GfEtBBMJrU~HP>Hb@7)&XUvb%& zW(Onh&#eou;{CUJj=U-#ZWB6>tVS19;j? zr($#V^g=t!1FK0_&*=;|=c=fZWF%J&OujN1iR_(TIvG9@sx-C)34!wD7 z*nl*|FD|@!s2Txs9NN*o?u=#K zO)_PEUjlJ@CCrJrbBryRx7Q0xwTH3IpjSkJNWR_P`Y(PpstNsC+SQm|jk_e3dAD_d zNs~b}tK`&X44QW8PAaI&78%)$IO7nD=P4Euvva@G$40Yw5R;6PJ>#BBYfuiZu8 zY>Wm^7Y~ca^~37c!5F)w)7;-%N`>`!MSRg{|K#v+J~|n9e01oBu7``&WyCaPe?%8D z6dO0Vora0N+~=Ainv=2R0;5qw=Q8NH?YL=yb*#h?W!5;!paRq@FO6Gclh%*LX0v{h zTsKE$mAPJq!3h;Z@DRBoRnD;6F4Ro)no30Kja05bukM#TLiw*sXXArk=qP-_*?8C{ zaX20-b+osC(ZNTR567D%hvlBIazN9kv;k^2dYUUS+RKy}qsT8J#hOJo1A=(TlLbtd zvJX7w`uwPS_@a!k-bkd>A?($Q&tlfTYnxC^;rl4D^xTiU81HQ%QK@H0mUaY`0+V0g zz*$Fz%s^>*ujfOTq0kQpBOhkoZ+QrRtYt;Cw)QbT>tQR1?(J+-0ZHA(a&b@b^kmfE zyXIiQ><$WLSq$0O-&#{r9Q{b52j5Tj;8WOnw8Bob^&!*pt%+OD2(Qv7IP?k2 z#c?V%jAAKcoPum?gi%^rs0S%;(#RAj zMcmQh3?444GX)Bhmd@O|dMk`9`Rn$>FF3iA~V^#Xjh5H3ge< z+Y?D_JvR?erQljbTQydunxVY`_^mxNasOs?nHD{Ba?8)m;_o@pztX{M@ACfs{NeEF z@ozfh-laR^zSqS8Jp2?k0wK|jRQ(q1qRd<@(Cxp0eYDY7W7^uheyeXvoqI($A#7Lf z>;;(SlXkDnVo4Ujj9Gr60do(x-vgAcFmB#0Ws?#iG1nG(?hptFi{R14`ETcGWf7Nr z3L881xD%7Dc8Y zkYTVQ!rEKZO_<1}q2NlWNm6q)C>2})<;|-P=ZzN1bs3aXiS{J4nMAY@>|6gV3z7+F zNS!S^EOd%Ox{hbfE)&=whShL#{%(mXQ+8)$jp;ONNi39z7TD4>;rG?U zN(!GDcX*LfhotTIC5GQKmhd{4zOCk)mBVZIIO9rf?9f?S){~}Ks>hL7ZO?IJ^@d4> z*i?UIOla(%k*4(3jo#Vl?C4^2wm+WjXTsZ;d}NvVQC}8rT$V?@B6}nc%W#}4QuU#S z6`hIoQ|Kfw*8>~-U(v4a`41Hp}LXP&41YkO$iy-)ufQ&X%&o6!<$+QS%Rii$JNuO^|TQUFJpATve3O` z$CV~=BGF-tV^k62V8@<}dI|5qf0e^HR?|iZG`a#^-U>ZJDju(cJw^dJ)eW&CNE|We zfV{#=Fw=v|@ud%;yHMK_MY&^Qod`A(lk;Oro4dU)X^Y3&YU4PLj3EJ9w`6)*!`7u~ z8PlB5WEm5qa>6bQ>#tddU(&k7>;y^goZosu*g93qm!b|+{^SckI785Bpngz&FHZE9 za_z9qU>{S02TT)V+=OV{>SrA&Ro;Y{lCor!d3Fux`Q%{0eVnhluu}^!)1p-sfoNcz zH1%97r5q3A!SeSncyv{>!-!s_pD!Y3t8r_}Yi--uTz%kx9e!$liG~k2^er>Llyawa zc4#m))O*9`qH4=G6pXG~^A1h`)|E!u!hb-1ACave@@Wc-l0d);&+BR_VzU{dr}>EieT!DPNi6<+Nu z15IuXKh!c>xCzbuOu zr<($$TGJJ|mA3$cL=38;YYQvFbbC{@^0AL8oUZE!-3|cu9xRyH`@Vem*_qPvlQs2) zp`MSsUCb(cSa1izq=d=Y3fe=oifb4(W}wQ0YLU!H-HU*3efS<3zokfacEb#u9ei*; zKdK+G%=57{q?A|EU76BK+HwT9^DT|?>~+ujWt%KDc*_LI{~Fg zrj*)~lp-=|7Y;7Y#|O^E=+lLybcjAw|Gd@rZ>~OlYEyZbsNDf(Ei0kvuM-Q;joP^70zD>Qi!- zR0bj`vG%hmeb8NRYVnN8Cqk;^E7CTJ`EWQqm4e?e=;YXH>UQX$RxHCNFV%l#yCF~N z!8?i5i1{hHRnIp}==bsb6h0{VE^VAYkN3jP!X9pzN5kaDV2W?mo@H%a-wRHM>2tPl^hEaY4>Im=R_*ZYx8)U*; zla3_~W!x^n`74y4;9ZZsp&7v0YBHJfZG&0X_S0~gLsWQmN!v=1!bMa|YyEQ}=E#Sd zd-T;t@0>SCtuXfEyX69d!XwnzhP)@rZ0fhNHtiohh;swyC?b!|Q<|+}8>v2-=}{ z^<0j+EH#3eM7pf5R$7yka@HI_P>od9q4%f@qjl7&+8csznW^cP#e&(O$ToXvLD)N- zUZKzauy&ul$j4}nEe@es8xgasa&+KS8;I2}aP>p=$d5#e8t z2EXomI1?MWebMdk(#d8*4_FJbYZef74BOkrdt2I}O4(2JgH$;xkx@zE zl#284B4-4c4tCb<0foahtvYr#)m6q%iYrcso7L?j78PB4?n1H>e^o4j><)dMjX)iD zu+%HVJ#NZNw9N`IA1!daM#s``v8FWLN}kjeps6%X6Y#pH=(@MpZJi>1?CY#7dit7k z7XeyysfO&!As+>*$-_Tc0V6Pw6{%MDf6d%bCG2(yZrDQFRm ztyOA?TNw&vqU}?JGoVA6?NLJvEorhTos~+ByE{R6+_}O$tS)l9$X~N;!M~!2A*Lk2 zmy^l+AfpKA@vC`qr5eD#x@!PnPw7`&50Aor9?k?%=XW#p(w(B2DZ1hnP8d(d6-{a9 z$CJ~3Hv?gpB1?Iqvc6lRC+5`N{qu76w7C6-Q&*oC-QMTrmsZzber|pFGWd)!tS|Tw zlchlz21|Evr%0dldzs4Q3y_{fuv1<4Xv>wf)u?ba5gCECNbzW`Rn0C83Mx4|s$A#c zI(WL7rJ?rDGRBb|G}5{F*sZaebNb=8Zl>h0)k||gk>pZyE$pHiHd#Nd9o2Io2fT%q z*A4qtD%As~;38ej#Fwj*JiWCzGMnG-tkvan7uW6jGDv2!2|y|!0CAjXvbd#Lr|T`i zCA?Lc>ruR4QfW}A{G`NPqiquLiS$*GqEr_y{%%U0DU-Mua{Md>9hHV?A4suYio z@v^^)P>r_u)Tb-!1@*KXjW=r8SPnUZ@TuQb%W=&neybKXgRf*GEg8|v!0%#z-b42B z5lw7SO8kl;XzMf>u=_c__z(<_(qdJ49g8!W%sN=hB?YC04_jAW+wDN#Z5~x%Kw^w( z?y6_4jRE-;(7cp3Hr?fk^*XGDW%dEZB9=%fM7grpXAJvQ>SG8WDT06<&-6=fvForP zMJHQf4cMv=N1@+EbjcP=$Y;r!Rn2ClYxI^d#qKOcRDPx<&pf=x8!OD+4W(k~)PiSf zcc6Q7O)hxG{mw)-c{LyHA*~%q`*t$_5M~0l`q`wZ$_V*uheFbbgJK8H_r+f~BPe`i zYbWd5_2yu+UfucapdH@KH|yso&E{cuLHO^vI4*(_C6g?Rp&tSP1d5Sm_JFIYy5)<` zI<_tY0A?K*+v_Rki*84D&Ofidu3P-kuWmRJHudssymx*L*Z>4X17YtMe=J~DU38(X zztGO-$@pN}61~~$hcBzI&zr^5YW>jJKRwuQAz;;sF!7OfMHW}mx)N2#YS&f>MSjUQc{ruwTe_8uZ#X^%t-Ead!lBlJe&b@H; zhm;Uuj-q->rkt`1KsLn@Y?#c;?yUDqCU&%xi6^(AKXs0;UE@M0)^3pnRmF4KOI6$* zZ*oW}`vl*I_l)Z!ue5L^MN^EF60qOh7r?$0tq&J-uQzMcrvdkuuX)B+(>DM_HR_*f z%H?frikN)Y3ov&e={}jrkJH*2od7W!igyNw6Um4It8+ zxY$YPVl` ztzVgFAWi~@ZDJS38@DIi_=aVaN|TOJ&>9uA`D~R8lSLAl4sxB!QY({1n&!kTD!1}d zwrH_uyiu8DjtLY|(B-C&$h@6(uPNyi0gjk^i(JpZhxkaa_yrRg$-Y!m|JI`@^ar{W z?;plm+J~M7&i)a04*$8{eCzblxeLJ`I0uW(pR0$CM*(=|JD6g@#H&*1a&^@5xE}tS+*7E_;KI*ffcUQh4o7IK?|rv>7F|4 zhFsY?ogU&;b>O%Bu=T2l1D)8(MI0(rzH!HqePx-gIN5g;UI{@IC0?QxM4?q?z&iJu`x36?s5&Yg}hBNntG#cc-@utkMVtUYzDT*t8fU z`%*8iyj3AEsc}k}xHKd!VvKRU*W@^|s-CXbPF{i0h$ZY75Z9-_`K$*j>ZqVuuBGcy)EU~*=cy%y%3^~`1~+nP~{6y%8l zaS`YV2`H)!tA3y1sEbZy`Fv#;{m@7!9#EF7yElOzg={HWBW^9zjHJregHz=ywr-y= z2^XsZWsuZ(9rX)x6OssZ_h0x8l^bK)q?(E;k0CpSc*+CQPA(dFOJ1qqSPr>>LOh$V z6R{bNPRe2wDS!CjF9^7JW|DwD#ifGClgem3U&Yyqah7Bs*qy>Gy zKNx1JoYD7rT;4u!R!@KbSp1#85J>ZbBB;U272XKg^LvlU;3l)fztBuZ8ztmus&2o_ zdX~h~3+3mv^pO$Z;n`O)0;Zd7wRRBH+^3YXo#q^~-gd>~*{DN^eTepU7C+qAJV1Sf zeU3#Az%R?DbNR6TW9^Lk$Z}gp)#4hXgSHN4n6NaG$LVi`C3H^dTux5|!zD6~Zg_7gV9eORE)CxXx{d%a9nlVeb_hEh4OhunziyBT-1UUiBW&%nl1S9F;4$20brTaQ)K62DF4?Ai9=uH#%6>>+e!+ zF_h-NTpMBh3c8ji=Hx`@Hu8tR7Z2;N%ZJJOt_9R3b5y-ln4{#xHouc%O^`=V&9n+( zE0II*nntp85?F7#LI1`n(j4^t?At^mJhFIa_tRUK5R*7-CWKS}*w7X4We=g0o7c z%zC|SNE*)3>HcVbc#3@ky)I7zzRFrEP0^D|Q>r?;RSvaRZp?RQ2_`QYfex?JjUo+r zI-v&^sSO@*C?Knq76bbdzP9}2- zyPNDVYY%0`vN98Q5nu%Xpkf6WO7oDGvW_EUk^zJb2r$PqZa&f1Wa;R>iNEIE52#3tGql@$3GEF0J*|}*986-V`#n+S}Ow$rx zm&2$?wRAq{As6z714Qyz7NS#T@q96L!YVE{t;I4kQCWQll1`be$&;o9<+G!1&z(s% z6=FYbi%)r8y#_XJ7SJgz%R^?Mj0ZvKRabR#ibBS5vrQS+O3D;UUILYyqRxE+Ly4Vnkc)C1(Xi^4_r>&JC#jU8H;IZ|8RsS;(87Y5$49bamPjhx~ zTSsD6 z^Wx?=|K{@kX|wp*x%6o*BEBw$yK$fgpFy4%|6ydsa?L~5oFe;A^)iYBC|vYCyg2kT zOG93$hfz%6BxYISILHhzZ#4?Li`95YhzuBkV+YGel%#KpDBX?vX^6N0WraLz=5>a_ zqwpe$%<3)^;y%m;cxXkZyoVN?BmIzh#Y1U^Y6t z@B(z-i#)>#|HLB_(Eqcp}HFjCP`54>|)}Av>-3agE*bHNXo+pRKu& zxzL2ukcuckvN3|4h@#0>@+D0I4T}T(*Q6|E_=TX3y694|htk-JRz%W8NW%HU z@@B&KGb*a?PU~dJW~-CHZC$FSy68ZL{G9G;OYu?HS@A`N{RCD)zbNU#=~BNPW40n3 zC_f0avv9yi@N_x)csO=W1_O^LLIg%T);YM<@g{>Owm9~_q^Z2Yyu2foQf{#>Mf31I zOhE=%KHBY|TgDHEU>;O_`Ov_@QVuVW1W@dlHu|EHSpGST!lEpMy-yd24t)A73_Mf5kos zrb|NCB=iF`5%VzsV`JS`p=V=FRT6Q5+w=H#6$fHfMxuoYqYZIyZ$U-OJ`r3Wpuv=5 z9Y8H^`w;fG+b!++Sm}s?)o0u*#@S$V8|$fl`fxIzoc>}gx*_hD8r$(G!gj;2{IEUT zAFI-CiqeQG+E)w@ca(FUC01`+QpWE{A|TcfS>{Q!SyJNRw0W$|?qTzkV@`&I^sFq}9?;|L>*Bo$_I$ix0X+i48pVtKz@JT5!x`dngPqdfPbyANS(CwqIi^GV-f z_V?q{@_Q#%Cw#JuSxuSzD3Zs8ag>Tc`813r%V@_+8GIG!(BIA_$*gv`%~bS$2>#5d z9fvvSrB-U^?s-^iDyiCXo#|k4|HtYZ7)wAqkL@H_#TkUD8Sh_5d!w_?(O!4-4!^tV zbfXSR?C1BoeSB(q*127OZ+}_bE&U>h9_H|MJ{{`^)dk)z{yj{)=W}{(tzJH%A{k z-aGpdFi~7VV3pdO)B3U4Y}QX4VHuZ&l#(oyN>mWALA#r6`M9~9rJas>dLSa9qlUmd zClX@%%<}&J{NeEF@o$o&p0oMmKYULlIv$u^Kxe{!4XVRCTQaXvfayM|09!Jz)JDg= z=umWCU?? zuU`5O_13Vo38P5DVx#w-hm~5=OqAQ`9UBTcGsYEN98lz^e4SQYmNtGl7PDx>&fDLM z&{X|0NERM+|4I5}XKaM(LJj7A!0%fz&_|%v_WeFQB~B9kw&1%(UPv8=^!Z@W1(Kp1 zZTU1f5w_u5(RvYy^c*kl7k~XNp}h$1sUGF(yetfMV_jj{OqV32^=|RP!CXtYn{X*6 zQFhh~3;kmQ--xm4(a<0IAK3UEU%Ve?R?)q{%w-CnRfPuvX!|wMe3iFUR10|Flt+uS ze z%tBanhXlDW7XeC2f9P+QaVrUm;+`;4p-=O})~9~g<>jF-nP3!)WU>WIiX=5xd8YWQZ z@?6vpO%=SL-%Vbg7*)GISMab{9(FP8V>o8E&z1j%A6E}k3*T7UKPH^>r&{~uj7nln znOXVqpZ>_xAnOqVVYZDP?lsUwgS!;Mr zMVqZnrT#DKXwlo4EQ6qC1jfX-sGoH4j5_*Z;QFj}0wc@pO(>ORmFJZnh~pxg9*F<* zd+Qe6EQxARCk(6u@%I5smsJ=Z>wLUWmu0%+KQCCVu~3gg7oS-|%i+kTyoe*F~Wq6$R@EWM&g34U3hk_rYn(4jff(hYE> z6mqxIU@>TuoLD4CY@m7zD+=W{#JxPDQ;|@?Tv(o8l+s9g;rqBffHOeKRVF9Hs!O9n zyP~d4Ue8{Ub4hi!?|amIJ3=10PXgT3IWd42-X7-lu2H9eAC>&;E62``a z=Jv`r#x@fSn@>nq&D$wY7APXRum^o!SD3ySS0Z(PXO5%{wR9|-`0?X@`EmIfw*?Us z_o49Uf_j%}y?d9~cM+LqB%)(XkY*^kxj(wVGUL8xHBgI`T^;af&DO*FFi*G+EO7&S>Fn0P%O z1Zn~5hwFVGuhr^i>Rwv|0oGk&UDVddGxiqji=(u5-a$tjXS$q!f`mpL?9Rskm)bYaKpBo(3kdk!Ws}@A;LV!}S1czy4Gzy3;LsRwGyUoH?)zK7-fx`)pPms=Z+MUc> zJdZn`oc6n!D_W%jHWiUrL~3j~P+H5bD&pNCbWCtC?04vw%l-E!OzYwP>1ceR2bUDu z8sn&>;ObnYFS2=fk?vg0h67e2k?S1jv=o{+f<)_d;ICx|cWmQcy|AD;RvFDjqhTsD z%m#B#$H|F-vo4{+&RVv$RML+b1}r@767)wLw9ye}9$1LP2oc<<>-WOvTnRGg0mqr( zdaKM>@x+}I71+NJ$Lsg zrc3LV9e4ts5VIPI)ty#hGaI0k!B!s6K2R1E5dexRI-@18N|1=U#93TzHWllqJL4gK zy}rKOKl{KYydvnh)37FqLPf8wZs}C-SyYcKf}rV##pcdNVPv#@Hfwp|Xs&wiEZNtr z_{oB!026(ev9Z@IH^x>U@laF>jW#Yi0}L(QJumK^#}(gLwj(H0&8h_h-w(P& ze1sXah@}26G`co9kRRgrvora7z!UW0RcC;opZ?Zt)`75zLAQ(b*X8CBpBo=^e*C_E zSmL+QU>qugM|C*g>dx(}dU6c~n-k6S@{h zSi%M4R7FS3$Rfh>_RbG^TZv`+h}HxRNJV9g6t#*?37A#d1^rX0n{SKalrf0_FTxaM zPLqVKM}2jo?L}Fb=qQe?N~|#e zs!thpW5vu&VF}SGitKq$*>lyFATZA^+w|8R2b4DTWa`ZB7f;JQ%;P(# zKu@_3Q2aTzy>757+-rICzq$^QWEnwO$IU=G4~>$F`!v*U+nnk9D+ zd|w@6!RGaDdmmw+Z`k)-z(}g)iS{GU<^Cg%luI?~rDp28)#GChE8;2(;`S3-A1Gf} zh6BHR{b%*#r>|d@Kj&uETA-orB1nr{sX&8PGXK?DZ&qJd5C7qOU9Rs}58s@he7D!b zQi(yY`&Q@)yZwRZcL#5Uo^FT(bQo2BEA;gH-4Ms{+H zf*F@mW@FTK!(2nPRnX3`B}PGQcJZ9iN!ArKM5ub$;mj~wGY-3q@&4bl1S8fE%M_2@ zRAadGHmIqFD?OiLy^3rL!760e=XMy)qgJT0$>3w}^wK#UA00Xa=bF!VS~8MlRK*_y zbNJz$PcJ$?jSqOe;h;SjdR|3^Iv)C=N<80yLP=D85U7Q;Zwjau1)jj|&A54ZHUf(E zI?gVYnJ23@a3XW8lV+&TR1qtcj;jp9HV-F-0MvJgoo+n#fvm=Dk7)Y4{Dws~D+mn~ z2-956;Z;biU4}J69O{ILW$dLzHamkjpf!|HQZ+F-?`#sx!W@@wmHXWxPPxE-SJK1@dmU|l7=%5zpV04C2!JM0!vO6KW_m>{N9_PH z4!+U$RX-*YR&pkSZe@n5dBRj7q#?q%(J%_NIhwSjk8M+9A&(}aGNzEU?)Q4ilA^OU zge8R*1mzviOOqSEeRAQTaAeZyW6@J$0e5B+cdJ2SmYTei@|+dGU~vNeWPsgN5m}Z^ zktVVLAEAg!z@j>|mbOnewn#en<9_Q@u`as45Phn&@ib9d*S)7=B4LJNZJ*-`%8cK- z`YKTMwq>KD6irdO`0$UK^HUeD&3R&}KutG{6)4kthkyJIFk=1i_u*!B`}nwiIP}7m zZ6ZiV61^8tx2R0o&G53Dx^H5FSY7; zl&PrPD8bg)uKd9XeH>r~6?(2^Y>+Y}$%JpdS*@MXH5<2v+Vmm!Epo>mXWW=lvKVIagja>4Kww?7qM=lI30J${Mw~;L~&#?$c(vI1x%Gk)8kSW z{Z7oK=@ukyIwD{?f0taU%!ZQ*-SCd%B#CS13fNZEGH)~@4=|U@5NIisIJbyWwlr<& zGr47mGuaUFwrE#gJjLONeB1Z0(jdl86~>L6D#vcgKBVE0>-k3)=f7nZBkWKowwhny z8snjhBib*%*)`Sz8qCbUT~I>M6ztq*Ck1f)AjFxJbh$ZK3t~aj+xUsxL;1z>j&{ic7v7j#~lISN}25A z-Qz{h-s<5iM&{9Xj4Ujq9hG*M?%`5Z{Z_P~U>0=5eusLG=4tbuQ(@LnPFNO&CX47{ z(CxRIY3WO}%}^zG4rnn!vR_`%J1B`C~l`4 zOqT+%ar{U}6AER^9QWWtKz`$s?Tr9*6|o<(x)H$7C}lo<$y~@h4zOCT(Ph3hlGkYj zo;=^(I~+_{>ZFk_CHRFesR>xhN^sa!k)l|_a6xMEWwBYwo*O-w7(K1OuWorOKb3o6 zuaC}_Pk*jA-#THJCONv!!D90#cJ<%}IZTfJE%NrM;2Y}0Mw5$C=pB^yC(ZI$q7154 zDS~TM&$1odP}Xl)t9TsL#ljkQzD(x+sRH~XEI9g<&eKwMS|`rlTq9i)tyI-_p*Qo! zS*Ip58Zjf};Z$1}aglo`g9K@d@H_ht*2&Ty;z7N-CcyJoZg6u+5Q|x&~av zvlLkciKWz*MemwV%gzpOn?^9ZI{qN@SN$FREo%@G0A^dQwHl24BK-GjSJKo287i?$h7{pTHIXA7d3DA-uj}_=8BHR0ZzM^Ve;tT;K&b=olRUv zh7KitI0s6HxZGvAd(P+^^mv4R%3R85oZNX@Ki{HEnf4J)xK#bFuOHsBR+PT$n+i;X zE!nJFn{{aoO{t~YrfFhSyi^lX)b`MYFq-Bv&lG72yCTkF!xM3daK02e#Lo)5;`Uh7tsbo+=i4~JNi86loBzNF9i?&mh< z-=E7Lj$ze^`tQQHRKmh%Z<4dA4-hjZ*0SxlZ01wmCTsqKgU^%k;pu@hUwpn_K1sfw zUSXfoVQo-Vu!E|Ip1MI|&r@2?2WyRoKb_Hi4_T7;mSk>|<5g1vpd-v6X~j6C1_mfW1A$?^zRA z;NCKdA<}KU>-ia%t1Xqc8HQ=8L}Rhj$MxnfDrKPY694`5`FVAJ=Y$w4b=dTkS?6N% zYeH2Y?pqJ{QT=s*^X<7ByBqvOV_c01ue@6lH1x#`v&+Gf76c(4S|ol%44Wm6y^2UL z)4lm34D+kj_aoJlHCD^0h)U!z^!Iej2Fy>e0pVAk)QCF)?)}lUWDuL_R_b zAGWR#n|C0*Wk}W@4`mb=`G^cis;@O}#I|O`;257f7^ZhaXI4y>5G@`tW3i`-N4fp` z8rQB?+zo7*(3l)0AtaSj=@h%7?YGh4(P&MaDt2yPo>Lf)tMJU0Q8Jb!@#?AJi0eJT zW!+xOAC!(PnsG(3u}`d}AkcRPz<0{Y>5KQQrXElvRf|n)Hj1)lm=AW}W*nr1z~i3W zzRKSbIAJ|>F9^49inf1c(Xu3xd|!1=Hvs@!M?sO(1V`nDw&2Fs`)`1+KDL&Ry6nMl z;-_$nbOA*!=^y%giPdo-x=&fDOSSgcl?t07i>o1N zn5)JPGul;1bIoBGCXQg@5E(YS%2%`q9+_PV4mq7+l8U1bngJQN#iu@9WzN{VN_qz$ zaX@%&3b3Ki*j$~KPYXkVG!GrwZA3EG_APc{st;52ImWwxk1tO88OK^N$}D5dw8zxe zESP;((IYl8agnlV7)%umqw8{yi|>!m4__bqVXxA5!`PX^Sp(P!G0xEN)ddPl5R;?@ z&b9*00!MLWg{rd#C`e_kJ@eR%g^TqdmcQiXhf8cEVfIC>58^Yr(=Qb~=}KBQJW2?l z=vDji)Y`icEo-jomOh;xVj?2|l!a!~^hKjmw8gRr90Z$hVN{0Og|U$G6y`v?c5{EM;LFuG1~=#qRMd(}Pta3{ zPldHA>GD9-1nj4pfGs*|n=uC4!kxyj#`&MCrzZrzh=JvG4c#*)?;c5u^v+2fKI%g` zgK*FdQn!zmIPE*#EFYiN9je07Drj}B3?G&&dc_7%0GAXF48qXmT{qQg!rexYoR~C` z*2>)udk7WX7WdLsixATEsYHV8g#I+!TdB|sn}-qFcEWmSSC^EiPFUyiY<_V$n;#wk znai)7n~$hW%a>ow<=+%<;<_)?xZsG2+5gYZPa&jHAdEw>0d_gk7?kxg$7ZV?GC1KX zbRteaX`f^!^oqO*4s0W0q9dXnYIVB%FO)G;Y{FT-xE4qYP=kQ0Sz<2qP`B)*yuVIb zp?}xjRNC_W-T?Ej>P_Vyi+=e%7M0ET=>I$~oZtM;l^5L*#SO_W+U%s=z|Bwa&AC|K zFBgx?j*Cq=2sm6ie6c~uu-tSK5mSWXW?oD1ak94uxSZY~*EnRj6Ac)Ih;bt3oKDAx z*8E}18?qg?UW{R&_#K2Jg{w!BC(GbCvP0T6g69MRdX~A08J^XllIq)c4$_l)oAf zepOSENMeLGD%fH6Kd00k=N#;Z?y;n=`iOf~^0Wv;Yhy_I0o}kBDQh~y(CMq>1Vntc z_@}jydq!~og$GK^QChbes0mn`rChNOahS*Y1uVOp;+c~aHUabL@vMd59*mNzn^_(e-fNA}9{%#M7 zBG^2421nFpCkgA(<6`4?sV$fq592u&dTDO$;$<51@$3@&)-vVvM%iZ26`{i8yX69{ zW+Q6vZYkSm*UTkDCPFL#&be-TXtOzQdoOFPW_{M+xQ!595EZ-h*)l^qRR1sMe4sd^dfSxPiRXoZq2sYgq|XMJ17hE1eBa&5o9u3kVks4b{`Scqynh{c zmVVUu2F3B9@1`HOG<{l&C{PcT$I|=OJ?(<$ZTFSa_|)$WSYcoP@B}r+BNv>YGg%6m zWgki9yeox?m=X)F0aGlx|1fdp)HhGH-{HYND+CpOGw8%_6e6Xh0!xxnz}3|A0G_jw zn!%)oX=1n$M3Fnq++0tKe%E*ZJvUrJz@qYqQ5b}u*?V@qVLQk*VLPRy8!X-kCBeXg zCx-AAdL}xMl$2bLs8_>pox0Zt<k(hM1~X{jsmoFs7M{WVAY!viz2!)h!(CyanEoA%m$s?)mO4 zyM>lNoA!=53xZ50jgosZX}SQGg=1p&At`Bc)p(qWl-wj)reN50aZ@!_F#Kaxr(nq8 zg5DO^z?FB@N&c0&6HB=*btUxaE-YP%?FL@27Y^`|x)R$fbtRV0%;H8Y&>wLlcHW8v z0H4j&*|%Sbm4=u6gwgO4j)8xH3~!iRWDs@m+1NMf(uKi|`%uimX(g9lSN?^fo*thD zU5@5IT+F@RtWBS}vgv9wX{pfB2DDTf6pG!{(E9AM*XrAsUTUJbsp0_!z|%p0+N6~m z|AsEq8~+AA21%Xudp&+a^Q!8t^0m9<5#fLu!ksMdRtriT`>60eaUnx)qmh4>=ASI& z6(P)Ju}>9ZC2T+S8KG3r0Hr`$zYG2F^om1PF&($B)A9=J}2MHO3RpFi_29z8uW4 zRN|Ft_oR3w#2SIEy~kzKG9;ggrLeQrJ!Pkeg`nPHaDysGfL8ZRH%LX@#lHFbZ>`bo zExI~3IJtZGUtbpYkIORBmq?PO?U7pj35(XFT5ppxmX;)Gh6V;E=&9)xvwJdJWmu~VU){#JdlRLDLJ+XoM@+MZoor50D=f=_xb z(pVl_JUNgbmu8r)0j_<8j3f{V4EoGJZx9{EH%~0mnmsLi=>q%YkchIPjqUG z+anK|Z+AEh2d^~#Lk2NETn-xd(O@8HY;-)dsWEO&UE?Rm1xfd!>s-$EIXw{ZZTav) ztILsNWMG-{`UVddiJ~j*_uv7mAqG_aUt6JjGdrCbCL?wnlc!8njiI^7aEl7MX9bTY zbfY(Pxot$i2jkM#r2EJgS?ZPGNb0*1h2g<@@Y{I@ z=r^t5N@P$l+T8xWenjr(9IO`K*AI7W@aC6;?(~H@mw8j+?Eof7n<0B$U-9g0BG8k% zfORaNmk~Di+FQq|oh4~!U4xx{dwcLDACZrop`nzW*&Bi+rD;j9_H5{3fqKfy_~r2# z&3_@6QT~e*y>4F#N7qupNqd5@fAr}MDYks_k=Gg&6g9UxR8t7c=&l0b=&Q@*O3X66 zw9w@2g8aA95yo`Nr%fYAHCI_OLwAK7CB?BQ``r5K96C_7&4*MsHm<57JPTNTOd}XhV`rgDE|6wZNf#;@haWr6Sp+`MX}Pzst83rZ02d zyc9O5I8_A{L?TDqIxgacq_0^5W5v|tK&CKZd@ad*!AKD3+r@HmPxa2psK0m3xPKEC zPrY@abI=kz>D4aw=e>SE_~_RoDlr_3p}Z7P(d|#+P=X=aJ_4_AwTw_c{ps=LY^YXl zM&LqomT&9f($W6O;o*FAGVUP5bg9hhX2ROb{f~!x7$imi2(FY*Tlk%*J&o=*P8>W? z;b-MP{_I@(qL8AELs3}O!z-vijl92&p-Y5$fOg+h)*)@M*kChMGYg`JrrAeKi(X=t zzO*F&+lHZ%>OtUDgi9Os8f*(=krEMej5^G*Dx4#hYK_9%BGD9AZ8#`JQZ(x@koy6v z9sw?OsnI&@myS&(FR@()p(&6?bSe*OxBN+7Ud;x2xj}pidr@rZtJzbeS!w)~Vqxsb zzzdT>-$AolW6CrdC_EKm_`&NkHzAzr^=&)JICV#;s*)!%<@nDioEffq?!dAPAo^=Q zac=VdeA;z04cmpGwJ>e8z#bbXjIVz_z32pV&DcY&w2lAsGk&iqlag(dm2b8ft!H^t zl&S^L1f^`KYG4Uzd5X5Rndk13E7dhCj$S7sz18`wN|a|BTwzU*NXJ)0wIviLT=Y27fskiGK*%{uHzkfRrJg9jfd_O%x7M z#}21#`s~Ws8Bz6Btk-bYOC+jPbdPswzlx}84n&?R`h@jooC=$3Ge!P3Amf2$AlT}O z1-aH5B*}t^%K3fT$#BJk^0?sTXRLL_j?^;3meLg1XsIW5BQ!g_d=@K1wmo6Ys(>iq z%{C@{ic#nfSJ(i4nze~9d&C{akm3YvYLihNZ|Vi2f$^3<|0qqMA#v=+?m1`z+Mv~T z&g9VR2iKBZ<0`Hql}#fWJLMR$r;2o0GEjkCYw@u1OL> z_}^GXoaA1$os5cWWl7RlMiT@5qQzi#52-VYzS`R8aq&t`HN?Z|X8%Axf9|XW0V%QX z$Np*(nh?v0YY#MNEJgS_$F6>UTcgz3aa28WB~}X8AA1n5w~qywD&QAE01hDF(^sCi zsAFc5OIE9!8KcgS7=W*IfrI&a@N0Grti2G_Ut(^uMoE@K!^Xo8g#J(Rw}&(<_FE8SV5{fCQfgnd$cD9H|cYqFRb zku5@9wx;vu!#dt5tkrccP*XbHbTfC|Uzv3j{@Wi&q9UB%t#(_Q? zSHOKrec$^`Ae0whU2=~nb5&x8G~w0v*+WFg;VbK}W@QxOF^pF!G!P@|(Lvczk@+WU zmdV7pT61C(ZM+&$>AX(#L`Pkei7qYk$m`ZPn{|7aozX~=nevmX)?pB+D;bu^TTE=o z_+X<80A#a*Bz7N_9EKr~CdvK$L1rSm1aEgrZgA{i)V7%kBvvO+e08i zG1;-HWga?BUt*Q}^mN|uxjv7RR!_*S zNn+keUpvD-iu-$7Q?x%&<$U4CGAGOnZ7rc&(w>QyS!xqf^p%YT$STCu2DO>P>*AVJ z>v;KqybW!tE=~pNT2j$KWVdrXZJuqHb5KAP+uhlI%MA`$-d^xpY)ame0MOO);Te01 zoRisf^zV`|vkvb@5m@TDa!Ip;J$KFkZ$fP{5cxrW5!mW+4ANJ^y zb;2&+V84dima=?Ab=^_hlpd#QHgrAe*N=x6bKaU<-F4{MT3M$SKY!e)#^K9b=u?xK zglNZC9UQ{gjoTFu$~IXgOg(43>n>V#H${nQ#Ezq4b-~Yc9+Z9AtzswckzD^+ZdMCE zOTuH{LjGR7ZYX?PdTJ)Bp|`~#jmO@~Sd9(qmB3JTCE@!(+SGt3i?K zi$$BT6sN6yvF5%>$s-()L_mUk33z-e9m~HQ5I+_2nn*?7Ih#NJgYHiM>>Mv|zpXp; zd*^7iS$F9*12fP?(zx++wFjbuF|sf~4OARk^pcgEgO0s#8jp0>lKYO7wfBO7uYmRhkTb zY)5GNtekP)=lu)&`Nvr z+xhW`V{AI}6jsGtYYJ@KQq&GbK|vmf8)HS4%QIX#%Y9!Ce-LgvF}+n0OiI=aD~mo^ z8nS_+*5;K(PWvIaG)7M8e|Y&JNs4DYor(! z_cBo@?|guQPt+W3K0QzhJ=F=b<(jk82O73FSAv zFzk26_~ml{{YhUEeYk%*8eiz> zCBm?NQQvL`C#NqeW81Xwh5G#l>fps2xLJ~5X*`vr?jgo=7d1jYJw~uKdWk|X*0!rd z%66lxm7|y9yJ$i)kXg`zXpOpD2}w0d5A;6Ow3Oy80FbvHl)fhxbo)oWA%{WoTjY|I zG3z1;5F;T)qEHxcM@LioWX%W8Zwo$5im3>MRX#o+V2+>-x2DUBy)zP2PY#2=H&Jaf z4fL#9+bdRn8HFp@9~bRgEGbPy;gt!Ks+IKB!X}lk@UUJbQ)24}G$#ek52}QI&0cr} z5i*i~N5G3e>H~J+m!!Sw&+GJ(mHoc`UZ!|dA0x!phCd_a0%6(j#UnA*QpcKo5Gg6|L6mZ>RL)2i z8L5B{LAL#HfMawl=wrdg=%$3q^2)J&2-gkNO#~ zs<7L}#(Vji!##i${Fn+2%eC%ox6(!ns9pYKZjnW$@_pz9y?{xBMa6MKrmc)c%{*h2 z-NegP&yeLz`9IcN&0KR) zx61kIEd5W!J~0HqM<~W!wQ%+IA%MyHY3&?4I6B2e**AcouubM9@A&cqI%rtxs46gS zi%)s(XD#>;R@E4Ma9Wjm;L65Wl6JRj-BI)}m08>LV3~+Aj=Z~8IS~ugBhtvmhN2X% z10_L6KV+!!jd4?&oP%CZwV5XS@9W8BeTE9aM#`n!g9H>yR!?6Wxq&PBG#oHFmVRVs z5-6zZD?4M?=PIdcYzbX#1I0^9Lqobd@YJn>SMVPx*CyH|rPgAB%+p}%@v#TdE}6L= zSqcDAM!77kouVo38Q8}f0r!k${&W`fGM#Xx=+Tw223gd`b8MCLa~Wl~Zg7W1V;fd5iTR)hZB2&vQTMbM)M>i%^1SpQWqvq@bxt5Z6Um#H@x0+wf?`NG)ZSyu%535@}s%6urLD7r94iHA1`{n0cx ztBmocSPqjTL~&PRm%W)0Jlv`F#-xcPOBNJEH!V_V&l%tb$jDMSs_g2{&Mk2S-E4hflcR=q)HlL0Jf*Qh%3 zxjoTgM3A2bgD$PUk9ZRuyH;>aS*U1n7oppLu`+#KX?s%zAEHIs((YN{LkTSbm*uvC+l8o@ z$Te;^JvBA<@>V8ApG#}zzO7r|P|=|n!Rx8bHsi@@zxyHP;x`EbmRQcI%X_6jD;blD zR2LJ*(zuvMcuLu3<;Tj>l(ZX2EX3Fd54O|T2m%D3&J_6>EiE$2HIaA?j+8*g^0B3z zd^*P2X5~eUotRq*eIX!&8bqoSxsxD`>kQf;Czv*nx)_h1xuhw^qFKe_X&%Q4jWw6e_@hEDPlIcO0 zeH=>~9#=m|({ZOVu?AUaQ2E&=Ez3k>oysy5_}lL_;9o>p30To#SFO)5my?Q=y^+Po zsnClnUS!Y9P)Ltv%!ZReV%?XP3NB+Wb&J%j)kQq()*2?zAR`1@dAF+c{H~C;IJ|0V z_g9p3s)~#;?X)AS2FN1JiAX##q$1ti8+b*MF94I1<=tvAUEDcX2MQnMOw|&Ts36UM zZvCoBiL>UOQ9TJ1I>Xv`j+%{KERE@A-l}R$R!N|WoNrXfx*7S{J!V{2jnR0R7+j?H zs_d)Y$_tn(%x1h0J4`2pawt0uhN&Y{W>eqTW0|PqpjaAG;?_WQTgZKd^cm09Cm1Z7 z2z5(Omc=^g5I*S3s`X_B=xpA?ZjdHkRw-WDI3x9>5L*TpoyWUxQt!t5vzy69Ci!~F zx0KeDQ=DqnRBXxiaCUU-FuX&T>apMpehBX9MsKMF{X!21r?y^fI%Rh)~RjXSmQ!*%-=O_BDKH^PIxzKwf7Cg!ocBxNaN`it|r^x(@xmFOb7MI>$?6hfCdaoJNIOO%P^Ga z;NQ~2?^Hcc!Mv3qb0XtGL5=m^62jF|9W)cDR42~PkxVM1S=NvwT6K6ZhIIEdVF_Mn|&5$;U*8X{ zw`m3n4Q~W@7X6zO8jj(msFqEUT*?v#jB0~wD7U(Ok;afJStuUd940|iiz-{AMn-B( zDsJTNB}&+m8)k$23F{IOBqMz>59y0K^TosC`rx#J(?%qDh8`03DAjy+9P60EiLzcK z!9qBH8G5fCXld!w`j}UlpH9aZGwJ)SAV}M93J!L7@I66YJkqAN+QdCpuaM}aNK3YV zeK>mmk&n@fKru6nT|(sQ?-mp39In=KNKmbr3Nf$>S2*Odj#N^t62S@@TIm&|;I%hl z8jWE~DQ@Z6Fny7&Vg|`6iQb4y_G&}|pUMjVmbP#<#EqbgDgGs!AZa%@UWFG5W1bQl z{?V4*EEym8g$pHlpkp%S`;#}$ITx{|y7*u_?8JSf&t8utl-9A399}c}9pADeZ0$y}QCu3nj)b940 zCAb_n0Fw*lM)@En(%7U|Sv^robHh6%#IE1|-tV^Yzc}+%(Ak{{m4(ZaS%NzN|Ojmm4hILdo$68lfbRE`w$Qbh~%17Y_@SgF?CkdU@um-mYdfwlXw|I6)L2qlt~*d|!+aOOcF*i}{nfAeNAdcLD3e2qM%8LzSX8=X`XI38VY3 z>FVKWxmjZDQrhzWUFMx*yD$8bTy`++VbuW-1w?6l^eO#?x7zzW=VYSahE|!>ijc@t z=LZC6p4k|&mB2=Eh9nmenbY(j@Z$&qm|cRi8P#|hx>7nK9vIU;j|_<9>Vn7*42h)5ML$_a4$+W1GQ#DWX<-W&@L87MhK6B$FHz^>$Hu^ zu^0G#Tt~`uffR}%L6^RdN)K+i)YV&ALTa2wl0CocB3d$Z2hdMwV_cvm^t>`apJCVE z&BZyFhu>EUdK>A0W#NdxN%EO6?b4yiI${l zs7|v+S{fVN$qcw8Y)O`hd0fe<@#O8knjD;*&s*2f54P7=2Z->7*VMT=9)EoSa1Pq-62zdNNeov0mXSS%S#8KZ?*?ak(@c4wdtH`S2o6^@J%Y zN0D7(r~8{K>79)GG2wMmOWbx6_Y=qvFK&+jt~Pzfb8qzkyT}v=6!k|{eC&?aSw~-8 z#)!nPD)Lam2z~AdO|E_HzP)gJGJ897Yq2|<%>7ff%Ue!Aicjh9TRFt8T=R?HT4*q; zR%7Jzyq?WmwJI-#gKS%^tq?-r1y^Sy~Pn^C-)-EWuZelTZJTNxNfEIn?_ zX#|o>`4B;NVhaH}zG>yb5KX>8n>lPIys~_jF*_+DIjkZ_N2OG>QmYiOa-mE&h-GuE zSV;u$kULZJd0wu(^@TZbNksD1_up!Ck@5~>`)7W_Lds|=C>mY_tg3U&R(oZ{l0FwO zd?WdWuy}C4(_WYl(G>D5HRV;GXA%4xXTa|v{3>!WHc)S+P#aA{C5H_QR_@AH*ao(6 zP@xl1*0z00Z)23nXkaLBBkVtjZ|79DFDd~kYgkegG5kR$?}$)pE^EJf8W~42Tx=Ss zqOrb}mrrx;Vv&itBZ!W^6)gP0rXllccXqhcn-b}5$D@O9A=i^E4!+?rseS76*VgB+ z!fD~41}=|9ZsLX4cf}K$5zpwZ+Mpez*CJ7hdo#LB2ce#^=El5Xws;Qx3mwlne0uzQ z{BRpx&dc@kW|H6_3`AYd8X=0J8ixibaM%R4j^^@nNi=m7CACsY|9rIP%m%Gcp^|%( z(fBM)F>N$2Q~`YNjE602I+DI0pzmI?mBYd~ zYs11qMXF09b$TY0q@q0XQ_EBc-s)`Vsk-pnn1m2-KHG1(UPY+hD1_Fb)Rt$>_Yc(v z)Nw~u`us8j>L&9dVo;#oay{!bz}6V)GR(<$3A0k6BQO<+h=iMw_{I0f=ZCMnA!Ft{ zEr)`75C4BO9Xl8d#U}>tUy1ce7w2xE8Sql(kXLba$jc{H-^rNE~stI(<+-kk-rYzFP$q7bCO#s#BvCWj12#Mj!Q4z`@SB! zRP5t$CX-nQ-(Lz?3m>-7C_)VerMC2If{E+fv%V_)OJH1l>eE%Ilf0F&ERjiduG<^K zgi41TnVZnrAF=PVTnHQM5r#r~SR=pq zve>LT78xDCvv4Z=e!TkF3+1k8ul$B1)^MsW`hMSU51WA3MBFtwb-mW4KWqK^ytr%a zuQyAn-ILRK`3_{06gH(Pvd66%LYb2UU{&v?ZOTK_#$dxS@0!jTY6}!-%7qyGPS=60 z7LVCOL5m-ReJn4^WSNEWi`I50-%lXSF%oZyFy{$a`N&FA#<#*8Y}-P_H~Z8&p7lG& z*J^}lA})&ST!X%pzEq}YqA#+sxx!uuUM1F-%w}HrUMJ_p9}!T&YHz*R+=(+R&QfI? zB1-X4zVuV zN3a86(fr@ZH1j8d;uq%eRxevNEn8}A9k1hY20Uc-}Ahx5&9{oq{m)Zo6*iSj%0 z^K?RaA6sAD5N#Yrq@t``qRxLTH;c}Y7SjDB?FN*RK8Z6D533Fl=68F+u!AA(UJ$?+ zL4lVKKVvsIra{*oG~xN}t{*te7kubdX<7QX;u5nZ6wd!}GFz4*T1nLZ`q27qK zT^CZ0&0*Aw0DTCZ&`n|`FVB!k+lbPs78n?x#JomF6 z^=wTyOm?qcFX^^e!@bc;Y*`wyzr!31O_rP6=gr@pL3@Zo9oMA2y)f)r#X*{?#K|r0 zZmKpjvsK>8L3?+Z!fMUzqSl52b`?Tl>DGn-C*7p*RRY44g;u?oNekUAkIOQ@6iU&r zzK@U1hkVHS^XBuK)&OBoVmGN6nafIBUvry2P->@iw`^dR(%ocZqcY0IyslIL(1?XY z$!zo7+B`>HE5jnt;^heApoxy5h;isJRDE#9EhVK$YxoFR#+rbgpL)Iiu@t@cr?a5< zO6xunqL&mr?8zcSDhWKgI2wd|x*gs{hMZxQcwidwJjD$R-Um?4@&*LFcs*R*KsTqZ z7L`<$BNVxecoqg~4(KIg5)G&>NY<+sllQtPwMo-v*UZokMG={}L{r84zc28=tuT|5NaSPFf|k6^8C^*}7W_e};ocF=AxG zl1nj7IsHOzWz7wEq{EN&58I)89^jus@jH`r{9B_4j*qSZ9R z^gEYqfKtpW6f@~cQ`RHt;`diif8Q?d@0}Imxqp{BI$7VYH)3r89hwVoJ_2CF+Mp?& zqVjI$7w4Drn`wsf7qHSSk0KIK>e_@jHfK_>SK$`hy)OoV$B|0)xc&Uck2SAK2=Erw z8-Y_2zyUKkV{&BzW3dv%N#dIRID zM~c(wAK0yHXH7mnX^p|1ic2M%VUNj1ChJMU*|@4>phm;3Ze=Q&?<8qgGnj3st8&QK zFLnKRT77?hbeJN`7B_xS5j={kMGW9^6hl=;`}uS@<-Xf>c?UwYflQNe@r{i#E~!dv zY4@{+*p{qR#=#LnlyQ_M%w%#YQm%fwA{CZmiE^o$w0Vs(6PIkV^9~UG@KefKuQU0J zU0fIaa)@GGw^XK)a%mjYkV_jK&Do$-cfIvutYmY1G|KP%23$ZtB_lqiKX<82!`hT= zbpl=ejmZVv=+i7A4xE{LY51K<@c3e6XRt@te1-PS4Eb4oLCXQ~VG2z*4Dih}{mKAM0me5*h@6a)DyO5Y@(bd3Gp^BoZY`Vij zCQTgN+DXvm-UZ9vxkkkc%o3+h)F9?890cx4I@}i?-jCB(xq(+K!C5~1{eAsJ{f0mN zPm$;UPv?*2<`JLxnaTY4p`TID7Xa_z^Myvz*{6@mJ|pjH_Xv)&w|e;carqhDg;2ea z)}{rerp;3N!AS;jdb0e!Mw8D#9Vjy@Zz%=QjY(NO0d1=M!_afofONXw3d7UGK~LE} zL0z?-v!{#ASIkA-ZkEf3I9@3v(r|R{k5%gr$l>V6kNYJaBU%Eo)xN3Fle}rs(K&H` zdEoa)R+r}}4kZs8FVUfydB$xm9c^Zbj;DSCm6TUmqLa$WdpEA0ujvfk+UvuOQGL<@ z)fnZDLNta+BW=;`lhTZ2zAKJ@4>3*@Z5_eS*nVTXQ}bUkjEE09>AYUjsDteu6{+s zmiuS5S2VFr1nYHDF==~??=)?FO%|?Xn_FesVyTb!(OQc7PMDO+R~gR{`D&)8sE|#R zVENr4=7Q{z2*$zEm5@OZ)R|X-kNkI3ZtppX!&SH=XMMDa(w38})*(V~URPk5x3Dm! zP%k~kur*lp%|IG#yEE^rt>xwhCp@(oDwLF^Z?fo=(O2gJg@(XFbUA0O)Rs!6a?51` z3sOmdXZ~oKOO&~14RjG8oro`x?y>M!)XJUiDHmD2q*^vvC~}P}1z*IEr^B=s10vD| zypb?XlK=^EPF)RCKoM zvsrE=79lMcol!Wk!lt@vERqU(;rHJ;kAJitmy{0Ptrk%?xdTb~#=SIhkF)$!ovEd? zM>1G!?Z(d%zjcS$RFbkM7?PHgXF0++COU1a%e@#y!;;?W1W-!tQwgt-&chdowfVdu(U zab;;t@l}8AvT6)zlmiRW0FQwS@`Jw`(9cgH0f&eC)&p+EgKepWkT1}^o_Rl^up(jb zhALsGX6HoU++gn)A|6qL<~TP#ybH~-U(BT-n&$Q;0T**w=y71dZ;zm+!SJQ;rkF$U zLH?GtJX|DaD~XSNH4RKApq)&m)96n3z&Y%K$h4*x+Tuo`5@{%-&J5M1E}$-ZYnGx+ zg>Ple7#j>p(m}7M4$L6e>k2^&yX6-q7?8oPO0OEYs0=!V!*>prkBFX~p5J?vURKn7 z&zsDi`$q7PmXJI@EhmfBU9JmDVdjIIOcz}`{4Aj+%CPi2m8SY9fv@@{<@d;?%50bs z=FLO3w4;eAuZ|>2+(DIq74A@e2_gIXly=nc^{gid2H!dHP}ukl4LOV2v#h9@JUmp# z47#$;Qh=tjh`z{Hp5RZfkp8s}o)`C+A&5w_1QD1fyq^MNN&ZvtMp+|Au^KKa$aH~% z$R1YINW$Jqtd_)7T^zj1dC3<_V^n_1wpNWTS2Pf{0=MSODQ(&e5e9UFVLz^N*R`b5 zgBsc`?R|PJMj0%8gz3#ak4x^B+Gw<T%w7}DtL1#Z`17AsUr>?we+X3JPD3u?r(@eeJ97h%Bh5DOHzVN--u*XckdLLlSF51Ec8x)8{IJve+)jtRrbgOc3dPYKpJ?t$=3q zD+Q1VA>OQ8o3-j@{w)aH)}=DyQQ?6&TRDHPi(Uu$z!rI8ilYL9mF3JCHcxV2vxm$9NCBLip(wn=kqwPFSYf$XVKkl2 z_xi54cg1nE8Gp@PPYt;t)Jmj!GGjVAKK2x00!ZtoU%n;vbNi*g~X{>cj13-qPS3d%l? zvM_Ru!wnRzV&XCVoW;RWY8b;hNHxUvc+3yj7Q(^g)x0~j4m<*winfoHBWaGvtV=BlfbTM?BWmu3b_auW6Zn+l; ziM97aia^aMBKj-pCG9-vTy#E`hovl4%^2tDF@Z(6$HakkiM0Rh{QQHncXn|V_hKDh9Q22d zN1&bbN{$*de34v2K)`a~j22&Vc4JvnVY`s@l%hPQlK$8s3BgFX2Fa{alP54HiQ3t3 zxRMD7k!g-LBJd}5FTX=}##B*L+lK`fbw4~fqmU7a;|tTVo>J+492I%Ui75R>`{`xS zaoaJT60^22Y|R+Js02{vaz~*)tA+sVJWmBi&iVABBig|+n9^$x0U+di4m0Lnt7$0g!_nU9en;#r!e`H? zov@Vnvt1z!fQ;Vpbgn|i`TK(z;Pk$IR|5U)e7iCAaAn+kOp<8U7rr!5$V3yBJ!?D6 z;sdozPtEyyZw-tx@vn=h%bkM*Ljzh7Rfk-&ZEsj z480q3B7wajCs%(M{p0$-lZS}NoCsorgWNK%fLZB@zACgZYJ4c%FqbZ^)e;@3is-jLFF&UfE=SU)Z0 zV~PrCrfjg)avP|N+v7Z3nXpzpjYO(O(#sM~6AXuHpJAmMb6hW_5sa#&CDIX!&On`t zwp&v`&~$N{{r1tt@gT^+1-lI-VtdNjFWt8mW)(RpgNBte-wODE;Z30%^$fj1@`UPA zLsiw6jX5WTPAV_Pf1KH%6{_jvy~${N_KKDcyj$RQT%r%H{C(0!^OPjN>JYVyx74&0 zh7MXvYo0JUMOu0x`6o0~f6SLs&?J~agHyBR!{b8iGP*u={#-r%?(8iWPmj*%`EIp# zKJ~qj?Q{*WBTfj0xEF=Cv0lHqd_V>WVoe&?a89u%4V9%~D*$r)=N~$=t(;4o^20mV z)pL$!QX4ld5nc`(=wz$!^*y>OT`P`(A`$lhl}QD^-p7);u+`=KUZwY28OJmcvn0~o zm?y?r#4j5-J3BE{GpyNF(eDvRy zO12X|h*S}pEhELpyKj=ulZ(vIQz=wOy>>;whF15yuK1;xlMJJ;L$}uoc%QnllcN-i zbnj4>Qz^oz2PfJv7h!|W$)N8sZBfUe_>AtbRy(I|&Z(!_#IE<(I;X9vSxY0Rq@YAPop zmA&opDs3!}DlzJnk9mnK4eA-6L3GX77a%H`3L{N9dDz)1M zq%GUO_-!^HojRk-gYmfoyrP9hZ_d6fVNj0AL42x{hj0}YbdAG zR0+s?%GwI8p4P*RvMCO6KCU-^(b8o&9CA5+SSB(_X$fPt)G)G?$)j-mb=c{BH}s4}`vKKy+OfqSWuB6NIsC zo9JoK#v!vLmFKgYDCER^OFCvjRhXbal5_r-a({NSln}x?=(965OYM$@L?aBZ2vp5; zjxjNFC!PGYCq612wwWAblXov7P^f{^u_@DTtzH`Eqz95Yutfb@F!;w!%n31a zOW5iT%tr_^ncCdhFCpK~=scY(2D0feY8`^>@k4lZ$bn zPhp5bhJVlHCFyJiCX7|l)`oI-WR6~R*z2gxbMmc>4tOhoMpf!1Y_ zq7QFgTB|vkk7M0n?kS<+x942$gTk~Vv?k28=Qo4Y})J9_VVt@kY# z2E66EUaxiKwkBT74ZW@x>WZ^d95Y2TL%?*N9JSD!^M~d2k9%C!jLKlIiUW)IK~}z^ z&6^zE2y=5GZq9i<4BiLjo99fbO^TytL#p~1Hj~nKN8m=>P-j=8V*{yjpBngZ>b*J9 zNv;bAsb|<^<95Wa*VlWKBZe`|VPq-sRIo*b3IL=s(cuGiIpEQex6#_eY2qnHp;%L1 z?>AD1_KY*6S)#gcLl2MMiB9p|$!DO9bvUwvCTlf^B1sGVyORj)E< zm;Ay2T9VPh3YB2+nd84MHdG=eT-~iVD|F45f^^sf3lE=`H|(R~yeUG;b{}meFLX%C zO4YC9pF(s9V47&w!xGELA&XG)N{<(|W>oy_ja1E;Fc@@hTu^H#-_K@VXx|VQ(dG7W zCrbGX`eCeNFX=CCR?F5q2V)yBGrBr04Z|k2KJBY*kTAS6S^CD~`81&T6sA@Dd?-U|@2!t0rnwp@0?@BO8G@_=VZ_i5*-Zx*D}?H^g^qsI!O?B(M|F z<_veD^W&ziY-GY3^|6v?RANR>C=D&QPkQCo);3C9Dr}D%VkWEG&HDS|FK6TqRg``@ z3wryyQz#Xs>mh*nBKgUhcDTroe~YiebP)rG^aEkEk)qy;{3OBoy3=FQck@1Vc`1AK(n7M_0%<- z28emuw4OF9rlL;DX;0OX1y%2LR&9Mv&NX(>feK1%ktS6*1&k}k(GOHc15&EXnJi`8 z6vcBSmlMU8dQOw(S`(Lq0|*AdDl?Y;8mWIHq%q$p*Zx(0M_k#Kx+y<{Pv}y&Q|4*5 zjp8V@pU)&wO$060!e$~VaL+F5(UeLUtZC8|Ahxg**fMV}Nvp9ePfcslL${ zBAO>$BLX^V3908q-XZ`BaJWx*;MFZWlo3%N}jGlWI}sy0YZkJ7>Q5e7{6<7@Zcw&&`K+==bW-4t-!F zCK24{sbJdDFq)ph28%pc-2buq)x(jW@_G;Bu!@dg1Lqsz=|vT z1l5d+S57JQ`u%kWo}HWGc=1xQ2mQW^2 zUuaks1>&0tgCxSeW&)=^#TX{!kX4^tOV*fqrE)9w_rzbsm0}BiAIs(wdS!9EbC;pW z*XP^Y6?=j=P~#%y##@$t#4Y1N$w!pztGxmsC2`5bZ-zRdWMOq2Ul%p|oFTF>1+;9{ z*PRF%%YSTN=-BSGni^;pWmoQnZ6dPffxes1y8R>jWE$-@B2!%pUT_PR)6CD*nL^cZ$gIuv_=U6P67Z^(S2Gdj3vp|uH! zI%Z2SSu))$AD`Bge|l}idhtd|d?r8c)Sd_-8X5i(kSg9eB*v!qUiN_`RSC<5l8*9} z-0FbPX-Z3@JL1>9%MYha^U3`EAk5H=8c9&-I+b+O-?k1&>4?G2C$teCBy5FuRl6P@ zBSyFvubbSmdYE7*2Og`XS}DL9X@;B0tQYc5C(PCtNa>?!6VbeiI;hXt{=!Wy3y~E- zsf}E7z8rl#9Ak32H{jv{Pfp`Ay0Yw)d8t>0zC%qOTT9@&)APyH`8eQkvIZb%{jNJO zun`Ry5+Q49qn9%6y4auh`u*S|4kt&rq-CbXj)&wxOs{z8KT^h`k_skcvCX%@jaMjC z562Wm6?Kom$3R`wdCi8Hlw3!dbF{U9x>a#evqQgl?rrip$8GsZT?4mF@(WXjzA;UDQj`ZR!Q4(dVW0Kr&+OxTh)zA zLw;bG4{!EdJn%Lw@#wGB`3w@k7)QqoM%};YRS+i==j?ob=y<32MGCzU^(ZCuaqo#(bc*Ja;jjSEKrg@kzBCx@b|`{$qBw4) z@wr)Wvc6q!4mRu69i6<$oy!o-ud*dBX`(gC0VWQ5^(kjtEt{xL=f2O_63RtUH!z*$ zNKckp`xGj4S&IbIMlwo}Tq7&pn{XmbSR$*B7c`*13rgH=okEe3pS~vJ;?B770Oz52 z*1_C?vGq+^y;I?zZVydrUR*BY#yt~xHdahNMC2)t-YdA?ayzg5Nz)yuWq#89CCdU= z;8LEbC-f>GG1U;Y0KM!?b@LcKckz%>L+E)3$b}tg^{JGU9ivs_q2J)fN}2K`&Qmzi zeF{w7_v`H&Zl(#?7~4}IB?Q9@PT0p82fIr7I9+1ti^^z|ku)mUq1Dn0k7*M!M+hQ1 zM!%)_1J5hpaGCUIEVyJ?tj6Su_DBIbl)(c5t^rnUswL^M^bG;Y0%h#kZBS2@hhKA- zR?6hW4oTpqACBIC97#Efj-XK%_IY)`j4npQ8*{0i_Is;RJ$+C{Q23vdjyW>By*&lStHPj#=DALqupMpyO4&{C0v;$E$jwmmIo57;ZIilL!;yb@qucA+#R1 zLeqd!nar91>+SY}4>=Y=im^Td7&{ z+078VY3dN8L|X86ab;(3wnK!iiO=?9n-E=V|?X`+MZ? zqrwYyJHHu_Efr9U$V~EdHN^ki+&-gn&5MFACYQQ^mJ0TjUX+dU6R*tEw(RvkT+F@R zL?>hGn@aIZ4o@|8heZVNlzK#l14Kt|94jsPn30DtD*VYezA8uB+kB{qz z$=nYaH6zSr4>kc#S7&6Y_tf>b?6al_6^XlC&dD}LGH@ICv%}W96lqbJHnoKNxaZ+) zpIYD?Rg?LXFUrJ(Zcx+3iVn=Kp1iJFkr3m!I$c|}#ANxJ3-S=T%btNF4pXYF%xWTZ zN6z z-SWQmb%TeEd+?42uA7ex70TbP*7M0|;q-Vi3x>**5PCIki%)s(ozBdy#BxMKQI#Kr zeY(G*zc+nxZmhMf1tWJnMs}we8-4ONR-brX)eNzv!z~qVZ6nUT@$-<1Jn|w2p+98Q zbxTcBr}R`5nx&q?lwj_V6~UZWlv0EmQAxlHyj3Tsxh<G81CCqp*a!#`o)ask!2 z5%Pm1K@k&U!#-LTZp)Iz%t2O=O2C=`L*k4kxt|Queuiedl+DW6{jF?ddK;QQ!A@U7 zE}@#~xxPTR3({@rGKi25nRsENqS`9j>F))&=%^lEe*M?g!_EEbbNlu-*Tlx~T8*#k`WZ z`Diject*Y&L#`GRCMUT_>QSp`Gm0m(^HbHifTgo;d!O9#uvbTw>Dx4;$|AWb znbmBWHQ_KL?k#q=T#lks)il8fjK{@+J#P^7ZC)C3F7#D1J6LhSkgTP1<7eMyb!t65 zyo$Vw^jpslTbBX*7kNoteo{9*g(fm7qfMngg0rXd!2KchhmIePXcdrK9+hG_P~j#{ zm7Bs%>x<=@m)uQ-rSX(4**SN1c;341w=mDomBi}Jb4n=5?B}XagN8f~y~t|+Yr1-P zTGFgY$F_VY9uL#({-}>jEU7emQXAt|l1E1<6rXJEwsa^Wpz++Rlt-yeBEhs#+jos> zPa@?I{6y+aT_s!Cs#};+;X+*6Z?d&7_SvG)kr@vvzp0IlO%rO%R8cMfAVc0Zo?#OB z=HmRLe1G%U!&Ym}^u_Pp$eK}+9~}O53oy;WO69dA?r3&pVW`>d?ZT4?c|64V&Onkz zM{&=GwVTCM>g7u;2 zchCpZ>-vblp-)Tf4~{2AaU~lk|5y=lQ^R^ifGMb_!9Ci;fM013!`|7cs)yS_@=O@$ zQb-8#N%Y7yw~a#%6G@{dQJbcQi0Y(z3HyiHS25NXMGMDhKxF53GXD^UnQjdGKq17x z5DxtMo%9K+MQ$RC3sNhcDciG_zlg3|Ajp$jJv+4wVRo^ zqSTM3Col9xWeie^c#&WyY9qryVPxj&;meW68A^K0!X2=tRnJj&6FsK*${hd%1^~an z=(d8|qb|*?qbxCbtdfSZZ_Rc*?hs2h{-McfkdeKuVGo*4=s@; z6Ps#~BVq)x`MAp-Mzp*R!j^CUcGh7+s^+FeT{5V?JU&04wJs+d_M6LHR-(_~R%N~k z8GYycc8N@h-GOBo$nR*)viz=kQO=iHJM~4}pf4f_@sfttdfX^P1{Gl2mHNZTF_m#e ztp17NB`ly}W<(B1hF_&sO@&ePK&qopcb4L*r_W!$tR6bhClPTKHugz!Q~M5SZxJ`x z)9+P-J$+Dy2PwB9e4ad4^kMXAG;!ve_4>zh<6Nt0_3D04XF{PDN##|A6A-zzmgCt7 zjK4vtuarDb?waDc&(#y4bmz-@BUb@eAg2x>!{kKhOGD%oqE^MKNg@R~>cN_^U{TH3teOKHS<2;G zCTQWh=NTf-v^&(rAJM5<_@zy2Y{N8EvVqlMftp-Z`!VIR8>Ny22DZC4{K8`(AdY}F zaaA;N8B9z!&2_GAjr1xbM%XeJ`@ zv%5QDSH?~Vf-XkmvprOTx@xqfK23V4NIy^+l}tsmaFdLTO;1{Z$XuqrIE)Xs>g$*B!k(+8bSU#H2Z76?Let|ITXG zRH)oL=hOVK^=W{ee~I3rdZ-Tf7U{e$6auq48xjX&ESJ~!%Ap+GhtlU%MW$RoZen1V zoLO!JoJUShod}!Ty2{Fwp-K}_iCBDe1Ao=p=U1)hEK+SFLX~!!L7AY(-)PoHXM;lO-O_Q8>r3p~Qns+g2qL%=^ zpSE_h?{5G;v{p_{&R__6}@b;?7VLsY(d}oA_p?=fNII(6xK2xvj zjP_3s59gzkaR>eJZiuVKZYkdvKRN7qG-Z#w+|8L~BH3zpMv0j8Q?J+O4WyP6?F^cb z@`+Rkt9mo;xzJ@~q%xjzQp#diQZ)t2^~DlG34}XTy|Sm%G3pcku;mR}GkWeO2cYYc zOFo2pdy#O&R}w9&_Uv&f=;Eg)oRrEvDSgQ`)Ep7Om85&!4ZS1Apgt4!Hnq$a$3a$f!qOtZR7v^DjtIL6Gv;Rc?hPJbW)7Z zp`SUWmwF>}5c(NZrLeBiQtmTKTx)~4PhF1DxY~zBbxhqSXnApRP3-# z63NrTe(s&kuevH}HD7oujE<;B$@lx{FjP%#R46HzPIE{h4f+Aju5+J0q1FO)_N|Z0 z293IGNn7Z4eHBRUzIUuKIh7fK)jy)K$7})jq&NB(tRG$BMRtK{&a1*~RZw@sd8!ZEs%9m^PjEga%W$ z4iZD0XQox6swSLjxuGAUhZ#ckrx8i|KbRlBDu{gG#Be--hjop(alQ?{c^WX+103^7YTxJkp|0xGJ zb{8&Qs>eBn2&-U>dgC&uRje#YWYl6!sN(aHSBhIJ*gN;0mErB|os*f!-sz=tIzBpd zrl+IdoXPlX%%s}YA@cH)`pgtoP!7+Gg5Gc?i8LC*tq+|?qY5{xyfnhi$#oZv>pV1L zxzE@{7^myj%;T)RAe530UyseVGEcSP(~aVYC~5#oY}JS&V@EY+!84Dic5#7t=lN!} zc1G8;N^i`ju~t~XK^N>ap+hA{EVr_bX-b*vS^@{65_tJ>KX4f@ujomV?6Q_Pvwy2; z`P?iYuWVa%hHo5QM_@p)NW50D&hI@tX`B>yca6ntUhw1{Ic+_#5KI6N;msVMm zSz)ZG%p(^84Cu5$leaevngcZSB5-zuwy&cDc9zw0<|bsD zIfd^9lzTXEMyrhza5sVIpt&k7F^%vlrETK*Wd1^_WuInvq?Vb|X!|UNFq+0!)6*Nn zCQOEC(2A(Fbm`1Vpx+qE9-_)pedS{6iD??lxc?dbYiQ2x*Lv$_tU|Bdb^T!1uw!yc zhn76f=6=9&p%^Y4!8~PFOq7x@oehO~@V1ys>w-cu;S#R2TV*;E2;$Es zz?BK27I3f=H?6vGOA&(*{~h&)HbiNWf+%CNbk7bxIG?ed`$;scO07Hn@LMWF7Cf|ys(Xq9kj5wd0v@mw+D4);(35;;oRndl42L*=&(lJ3|wSEas#Qn zM0G`vM?4c)(SkMUq-4^`mAUU21V)d5G_ZCFCmYx%$!q#io1iW0P34G*JjZymdAc9; zF(#dGs_&dXo|d=2x4d3&Af*1%f2k@=f?N@i!1dD@blNB0?=bJHS!&CantzVQHh-nq zO_h_?Lu&=!9^qj(NJM(HOr}#gYsL4>^!^lvJen(yrvPXDpzaB?cvCr&1w9xey{quV z>5N~r*I-vKi>jUP+3gdHl<8^HdfEV11hm6M8q?n0#Iv!YQz>0)_XYUH0k(j$M6i>c zn%ZG$jAKO^M_kW`*as-B&B4g0%47>sUS^}am91_<;J~%X*qN#u>rw1gyU{G(gBWTv z=&?0yVLxfgC>qMa`PEr)cMJKVc{rWLNYwWyLx-1YJrj*6IN*t+xQR`s;!zY@O#VsS z=a}0ncPya^`+W#_MlIsDLuXjK!EE&ts1T#%T9?Pg_s8dluPqURhi)j&!3wQ{kHX+t z*zP-0m@!#P2KZumzr;LG#~q-J0^=`K7nfcwu|GkKJQ`cFlTR8+uq_`6R7R(B^$q5` z2+5_U6Jf!i$JNM+E*Y<=UepE%&Fh|s0cGx<==(k2*getExIF{JR}k?BwtnQm#_bW> zc>5S`?RC4QwUl2?OkE+H1&_){tC=W(@jhCErqppC=z5qx0}rEZ9))CWgcakri^n1Z zmnS%5n&~^05&cwHCCJ`9w>Hl)+0b3|vbk%D$KImJiO*z@^o>+{#BlL*&URQO`-@7Zbm5{C=O>Gm-%?($_(vAQYKm{=Glh_DA2 zO50uylqSWnq`r)3#Bu-r`Lk5&>QbhMFonXlE$eKk|E|JT*R5QNuXcNVR)ZJhRL0^7 zwUpU~+{%2izHeQs%0cu=`MJ_&neAR#pY_ht=0Wge->zJ9H46u7jQHr{{I^V_{ENi( zVtvhgvv_#K+Jf)cUNArM)DCX*F`7cHjiY9C-75o3Usi@^Y(xZ{g*b#x5l97Xpt`1O zYFVlh>T!5`zgQtx6f!6&`>}YqTYX(UE$-JpZoSUq`gwD^T-_a2xozc`2}YMaA_ViY

8+f}b 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 K+4gCjK>r71zQx`E literal 0 HcmV?d00001 diff --git a/utils/excel_reader.py b/utils/excel_reader.py index 9175977..847b05b 100644 --- a/utils/excel_reader.py +++ b/utils/excel_reader.py @@ -2,6 +2,7 @@ import json import pandas as pandas +import definitions from pojo.contact_pojo import ContactPojo @@ -24,7 +25,17 @@ class ExcelHelper: self.write_to_exel("ccid_list.xlsx", ccids.split(",")) print(lines) - # read the contact list from the exel file + def read_user_agent_list(self): + # read the contact list from the exel file + contact_list_in_json = pandas.read_excel(definitions.ROOT_DIR + "/docs/mobile_user_agent_list.xlsx").to_json( + orient='records') + contact_dict_list = json.loads(contact_list_in_json) + user_agents = [] + for contact_dict in contact_dict_list: + user_agent = contact_dict['user_agent'] + user_agents.append(user_agent) + return user_agents + def read_contacts(self) -> list: contact_list_in_json = pandas.read_excel(r'./contact.xlsx').to_json(orient='records') contact_dict_list = json.loads(contact_list_in_json) @@ -46,4 +57,5 @@ class ExcelHelper: if __name__ == '__main__': helper = ExcelHelper() - helper.generate_exel_from_txt() + # helper.generate_exel_from_txt() + print(helper.read_user_agent_list()) From 0fada8455185b7a22a5e3c2d6a63b420cced6b33 Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Mon, 21 Mar 2022 17:27:35 +0100 Subject: [PATCH 06/43] need to capture the error message via playwright --- commandor_page.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/commandor_page.py b/commandor_page.py index f7a608b..921f3ea 100644 --- a/commandor_page.py +++ b/commandor_page.py @@ -88,7 +88,7 @@ class CommandorPage: document.getElementById("name").value = name.firstName}""", {'lastName': lastName, 'firstName': firstName}) def getErrors(self): - items = self.page.query_selector(".alert") + items = self.page.query_selector("div.alert") if items: print(items.inner_html()) @@ -128,8 +128,8 @@ def launch_page() -> threading.Event: "username": "panleicim-cc-fr-sid-179112", "password": "M3PZAXgW5V27" } - contact = ContactPojo(phone_number="+33751177505", passport_number="9933251119", last_name="Chen", first_name="Fan", - mail="lei_chena09@outlook.com", ccid="", position=0) + contact = ContactPojo(phone_number="+33758321759", passport_number="9533251119", last_name="Cheng", first_name="Fan", + mail="checn.fan@outlook.com", ccid="", position=0) page = CommandorPage() return page.start_page(proxy, contact) From ea0aed7caa0daed250b7e4f849f924884a55dbe4 Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Mon, 21 Mar 2022 22:39:47 +0100 Subject: [PATCH 07/43] optimisation for otp --- commandor_page.py | 94 +++++++++++++++++++---------------------------- main.py | 27 +++++++++----- 2 files changed, 55 insertions(+), 66 deletions(-) diff --git a/commandor_page.py b/commandor_page.py index 921f3ea..40c2b77 100644 --- a/commandor_page.py +++ b/commandor_page.py @@ -3,86 +3,78 @@ import logging import random import threading import time -from concurrent.futures import ProcessPoolExecutor from playwright.sync_api import sync_playwright from pojo.contact_pojo import ContactPojo from utils.excel_reader import ExcelHelper -RDV_URL = "https://rendezvousparis.hermes.com/client/register" +# RDV_URL = "https://rendezvousparis.hermes.com/client/register" -# RDV_URL = "file:///Users/lpan/Downloads/test_appointment.html" - - -# RDV_URL = "https://www.google.fr" - - -# RDV_URL = "https://api.ipify.org" +RDV_URL = "file:///Users/lpan/Downloads/test_appointment.html" global_page = None otp_value = None user_agent_list = ExcelHelper().read_user_agent_list() +OTP_FIELD_ID = "#sms_code" class CommandorPage: def __init__(self): - pass + self.otp_value = None - def _run(self, e: threading.Event, proxy, contact): + def _run(self, e: threading.Event, proxy, contact, on_ready_for_otp): + self.contact = contact with sync_playwright() as pwright: self.browser = pwright.chromium.launch(headless=False, timeout=90000, proxy=proxy) self.page = self.browser.new_page( user_agent=random.choice(user_agent_list)) global global_page global_page = self - self.page.on("load", self.on_page_loaded) + self.page.on("load", self._on_page_loaded) self.page.goto(RDV_URL, timeout=90000) - # content = self.page.content() - self.setPhoneCountry() - self.setPhoneNumber(contact.phone) - self.setName(contact.last_name, contact.first_name) - self.setEmail(contact.mail) + self._setPhoneCountry() + self._setPhoneNumber(contact.phone) + self._setName(contact.last_name, contact.first_name) + self._set_email(contact.mail) self.setIdNumber(contact.passport) self.checkCgu() - self.page.on("domcontentloaded", self.on_document_loaded) + # wait for sms_code field self.clickOnValidBtn() + self.page.goto("file:///Users/lpan/Downloads/input_otp.html") + order_sent = self.page.locator(OTP_FIELD_ID) + order_sent.wait_for(state='visible') + on_ready_for_otp(e, self) event_is_set = e.wait() logging.debug('event set: %s', event_is_set) - global otp_value - self.send_otp(otp_value) + self.fill_otp(self.otp_value) self.clickOnValidBtn() - self.page.on("load", self.on_page_loaded) - time.sleep(4000) - # time.sleep(1000) + time.sleep(4) + # check and send successful event - def start_page(self, proxy, contact: ContactPojo) -> threading.Event: - # specifying an explicit component name + def start_page(self, proxy, contact: ContactPojo, on_ready_for_otp) -> threading.Event: e = threading.Event() - t = threading.Thread(target=self._run, args=(e, proxy, contact)) + t = threading.Thread(target=self._run, args=(e, proxy, contact, on_ready_for_otp)) t.start() return e - def on_page_loaded(self): + def _on_page_loaded(self): print("page loaded") print("content is " + self.page.content()) print("url is " + self.page.url) self.getErrors() - def on_response(self): - print("on_response called") - def on_document_loaded(self): print("on_document_loaded called") - def setPhoneCountry(self): + def _setPhoneCountry(self): self.page.evaluate("""()=>document.getElementById("phone_country").value = \"FR\" """) - def setPhoneNumber(self, phoneNumber): + def _setPhoneNumber(self, phoneNumber): self.page.evaluate("""(phoneNumber)=>document.getElementById("phone_number").value =phoneNumber""", phoneNumber) - def setName(self, lastName, firstName): + def _setName(self, lastName, firstName): self.page.evaluate("""(name)=> { document.getElementById("surname").value = name.lastName; document.getElementById("name").value = name.firstName}""", {'lastName': lastName, 'firstName': firstName}) @@ -92,7 +84,7 @@ class CommandorPage: if items: print(items.inner_html()) - def setEmail(self, email): + def _set_email(self, email): self.page.evaluate("""(email)=>document.getElementById("email").value = email""", email) def setIdNumber(self, id): @@ -108,41 +100,31 @@ class CommandorPage: def clear_app_data(self): pass - def send_otp(self, otp: str): - self.page.evaluate("""(otp)=> document.getElementById("sms_code").value = otp""", otp) + def fill_otp(self, otp: str): + self.page.fill(OTP_FIELD_ID, otp) def reset_air_plan_mode(self): pass -def main(): - executor = ProcessPoolExecutor(2) - loop = asyncio.get_event_loop() - loop.run_in_executor(executor, wait_for_otp) - loop.run_in_executor(executor, launch_page) - - -def launch_page() -> threading.Event: +def launch_page(ready_for_otp) -> threading.Event: proxy = { "server": "http://gw.ntnt.io:5959", - "username": "panleicim-cc-fr-sid-179112", + "username": "panleicim-cc-fr-sid-192012", "password": "M3PZAXgW5V27" } - contact = ContactPojo(phone_number="+33758321759", passport_number="9533251119", last_name="Cheng", first_name="Fan", - mail="checn.fan@outlook.com", ccid="", position=0) + contact = ContactPojo(phone_number="+33758735284", passport_number="9537551179", last_name="Hong", first_name="Fan", + mail="hongfan@outlook.com", ccid="", position=0) page = CommandorPage() - return page.start_page(proxy, contact) + return page.start_page(proxy, contact, ready_for_otp) -def wait_for_otp(): - sec = input("Press Enter otp to continue...") - asyncio.sleep(1) +def wait_for_otp(event: threading.Event, commandorPage: CommandorPage): + sec = input("Press Enter otp to continue...\n") print("input otp is: " + sec) + commandorPage.otp_value = sec + event.set() if __name__ == '__main__': - event = launch_page() - sec = input("Press Enter otp to continue...") - print("input otp is: " + sec) - otp_value = sec - event.set() + event = launch_page(wait_for_otp) diff --git a/main.py b/main.py index d55d1c3..370c025 100644 --- a/main.py +++ b/main.py @@ -3,27 +3,27 @@ import logging import re import sys import time +from threading import Event from typing import Union from gsmmodem import GsmModem import params +from commandor_page import CommandorPage +from logs.AppLogging import init_logger +from logs.LogSender import LOG_APPOINTMENT_TIMEOUT from modems.ModemPool import ModemPool from modems.card_pool import CardPool -from commandor import Commandor -from logs.LogSender import LOG_APPOINTMENT_TIMEOUT, LOG_SUBJECT_EVENT, TYPE_EVENT_RESET_ALL_SIM_CARDS, LOG_SUBJECT_SMS, \ - TYPE_SMS_RECEIVED from params import MODEM_POOL_PORTS, CARD_POOL_PORT, firebase_store_manager, oracle_log_sender from pojo.ReserveResultPojo import ReserveResultPojo -from utils.excel_reader import ExcelHelper from pojo.serial_modem import SerialModem -from logs.AppLogging import init_logger +from utils.excel_reader import ExcelHelper from utils.message_receiver import MessageReceiver OTP_TIMEOUT = 600 is_finished = False -commandor = Commandor() -contacts = [] +commandor = CommandorPage() +thread_event = None current_gsm_modem = None card_pool = CardPool(CARD_POOL_PORT) # used to save the current slot position @@ -104,7 +104,10 @@ def handle_sms(sms): match = re.search(pattern, sms.text) otp = match.group(0) logger.info("otp is " + otp) - commandor.send_otp(otp) + global thread_event + commandor.otp_value = otp + thread_event.set() + # commandor.send_otp(otp) # wait for the sms for 20 seconds global is_finished while not is_finished: @@ -150,6 +153,11 @@ def start_listen(): receiver.start_listener(on_message_received) +def on_ready_for_otp(e: Event, commandor: CommandorPage): + global thread_event + thread_event = e + + def start_book(): slot_number = 1 slot_sum = 22 @@ -163,7 +171,6 @@ def start_book(): # create listeners for chaque modem # read the contact, and contact the 2 objects together excel_reader = ExcelHelper() - global contacts contacts = excel_reader.read_contacts() global current_sim_position current_sim_position = 1 @@ -185,7 +192,7 @@ def start_book(): logger.info("contact found for this ccid") signal = modem.modem.signalStrength logger.info("信号强度: " + str(signal)) - commandor.start_page(modem.contact) + commandor.start_page(modem.contact, on_ready_for_otp=on_ready_for_otp) start_to_handle_sms(modem) except Exception as error: print(error) From 4ffc1a42d39dbcc38345aa14851891af6c858088 Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Mon, 21 Mar 2022 22:54:32 +0100 Subject: [PATCH 08/43] set proxy config in params.py --- commandor_page.py | 11 ++++++----- params.py | 6 +++++- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/commandor_page.py b/commandor_page.py index 40c2b77..3f54d29 100644 --- a/commandor_page.py +++ b/commandor_page.py @@ -6,6 +6,7 @@ import time from playwright.sync_api import sync_playwright +from params import PROXY_SERVER, PROXY_USERNAME, PROXY_PASSWORD from pojo.contact_pojo import ContactPojo from utils.excel_reader import ExcelHelper @@ -109,9 +110,9 @@ class CommandorPage: def launch_page(ready_for_otp) -> threading.Event: proxy = { - "server": "http://gw.ntnt.io:5959", - "username": "panleicim-cc-fr-sid-192012", - "password": "M3PZAXgW5V27" + "server": PROXY_SERVER, + "username": PROXY_USERNAME, + "password": PROXY_PASSWORD } contact = ContactPojo(phone_number="+33758735284", passport_number="9537551179", last_name="Hong", first_name="Fan", mail="hongfan@outlook.com", ccid="", position=0) @@ -119,10 +120,10 @@ def launch_page(ready_for_otp) -> threading.Event: return page.start_page(proxy, contact, ready_for_otp) -def wait_for_otp(event: threading.Event, commandorPage: CommandorPage): +def wait_for_otp(event: threading.Event, commandor: CommandorPage): sec = input("Press Enter otp to continue...\n") print("input otp is: " + sec) - commandorPage.otp_value = sec + commandor.otp_value = sec event.set() diff --git a/params.py b/params.py index 88a71f1..5c89acf 100644 --- a/params.py +++ b/params.py @@ -1,4 +1,3 @@ - from db.DbManager import DataManager from logs.LogSender import LogSender @@ -25,3 +24,8 @@ CARD_POOL_PORT = "/dev/tty.usbmodem1432101" firebase_store_manager = DataManager() oracle_log_sender = LogSender() + +# proxy +PROXY_SERVER = "http://gw.ntnt.io:5959" +PROXY_USERNAME = "panleicim-cc-fr-sid-192012" +PROXY_PASSWORD = "M3PZAXgW5V27" From 840d66c59dae0799a3459b2c21921503e2da7f59 Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Wed, 23 Mar 2022 11:08:35 +0100 Subject: [PATCH 09/43] add proxy config in main --- commandor_page.py | 95 ++++++++++++++++++++++++++----- contact.xlsx | Bin 46701 -> 47094 bytes docs/mobile_user_agent_list.xlsx | Bin 114603 -> 89979 bytes main.py | 14 ++++- params.py | 4 ++ 5 files changed, 95 insertions(+), 18 deletions(-) diff --git a/commandor_page.py b/commandor_page.py index 3f54d29..37a10dd 100644 --- a/commandor_page.py +++ b/commandor_page.py @@ -1,37 +1,52 @@ -import asyncio import logging import random +import string import threading import time +import pika from playwright.sync_api import sync_playwright +import params from params import PROXY_SERVER, PROXY_USERNAME, PROXY_PASSWORD +from pojo.ReserveResultPojo import ReserveResultPojo, PublishType from pojo.contact_pojo import ContactPojo from utils.excel_reader import ExcelHelper +from utils.message_receiver import APPOINTMENT_QUEUE -# RDV_URL = "https://rendezvousparis.hermes.com/client/register" +RDV_URL = "https://rendezvousparis.hermes.com/client/register" -RDV_URL = "file:///Users/lpan/Downloads/test_appointment.html" +# RDV_URL = "file:///Users/lpan/Downloads/test_appointment.html" -global_page = None otp_value = None user_agent_list = ExcelHelper().read_user_agent_list() OTP_FIELD_ID = "#sms_code" +MESSAGE_FIELD_CLASS = ".message" + +CONFIRMED_MESSAGE = "Your request for a Leather Goods appointment has been registered" class CommandorPage: def __init__(self): self.otp_value = None - def _run(self, e: threading.Event, proxy, contact, on_ready_for_otp): + def _run(self, e: threading.Event, proxy, contact: ContactPojo, on_ready_for_otp): self.contact = contact with sync_playwright() as pwright: - self.browser = pwright.chromium.launch(headless=False, timeout=90000, proxy=proxy) + firefox_user_agents = filter(lambda user_agent: "firefox" in user_agent.lower(), user_agent_list) + firefox_user_agents_list = list(firefox_user_agents) + user_agent = random.choice(firefox_user_agents_list) + # if "chrome" in user_agent.lower(): + # self.browser = pwright.chromium.launch(headless=False, timeout=90000, proxy=proxy) + # elif "firefox" in user_agent.lower(): + # self.browser = pwright.firefox.launch(headless=False, timeout=90000, proxy=proxy) + # else: + self.browser = pwright.firefox.launch(headless=False, timeout=90000, proxy=proxy) + print("user_agent is " + user_agent) self.page = self.browser.new_page( - user_agent=random.choice(user_agent_list)) - global global_page - global_page = self + user_agent=user_agent) + # hide webdriver information + self.page.add_init_script("""() => Object.defineProperty(navigator,'webdriver',{get: () => undefined}""") self.page.on("load", self._on_page_loaded) self.page.goto(RDV_URL, timeout=90000) self._setPhoneCountry() @@ -42,15 +57,23 @@ class CommandorPage: self.checkCgu() # wait for sms_code field self.clickOnValidBtn() - self.page.goto("file:///Users/lpan/Downloads/input_otp.html") - order_sent = self.page.locator(OTP_FIELD_ID) - order_sent.wait_for(state='visible') + # self.page.goto("file:///Users/lpan/Downloads/input_otp.html") + otp_input = self.page.locator(OTP_FIELD_ID) + otp_input.wait_for(state='visible') on_ready_for_otp(e, self) event_is_set = e.wait() logging.debug('event set: %s', event_is_set) self.fill_otp(self.otp_value) self.clickOnValidBtn() - time.sleep(4) + otp_sent = self.page.locator(MESSAGE_FIELD_CLASS) + otp_sent.wait_for(state='visible') + message = self.page.content() + print("message is:" + message) + if CONFIRMED_MESSAGE in message: + # publish the successful message + print("url is " + self.page.url) + self.publish_message_to_queue(contact, message, self.page.url) + time.sleep(2) # check and send successful event def start_page(self, proxy, contact: ContactPojo, on_ready_for_otp) -> threading.Event: @@ -107,15 +130,57 @@ class CommandorPage: def reset_air_plan_mode(self): pass + def publish_message_to_queue(self, contact: ContactPojo, message: str, url: str): + # create the message + id = url.split("/")[-1] + result = ReserveResultPojo(type=PublishType.SUCCESS, phone=contact.phone, message=message, url=url, + firstName=contact.first_name, lastName=contact.last_name, email=contact.mail, + passport=contact.passport) + result.id = id + _credentials = pika.PlainCredentials('scrapy_rabbitmq', '4x!hReCbA5v3heKWfPJV-Y') + connection = pika.BlockingConnection( + pika.ConnectionParameters(host=params.rabittMQ_host, + port=params.rabittMQ_port, + credentials=_credentials)) + channel = connection.channel() + # default exchange, for 'hello' queue + channel.basic_publish(exchange='', routing_key=APPOINTMENT_QUEUE, + body=result.to_json()) + connection.close() + + +def get_random_id_number_for_proxy() -> str: + # write_the_valid_profiles_to_excel() + S = 8 # number of characters in the string. + # call random.choices() string module to find the string in Uppercase + numeric data. + ran = ''.join(random.choices(string.digits, k=S)) + id_number = str(ran) + print("The randomly generated string is : " + str(ran)) # print the random data + return id_number + + +def get_random_id_number() -> str: + # write_the_valid_profiles_to_excel() + S = 8 # number of characters in the string. + ran = ''.join(random.choices(string.digits, k=S)) + id_number = "57" + str(ran) + print("The randomly generated string is : 94" + str(ran)) # print the random data + return id_number + def launch_page(ready_for_otp) -> threading.Event: + PROXY_USERNAME = "panleicim-cc-fr-sid-" + get_random_id_number_for_proxy() + print("proxy_username is " + PROXY_USERNAME) proxy = { "server": PROXY_SERVER, "username": PROXY_USERNAME, "password": PROXY_PASSWORD } - contact = ContactPojo(phone_number="+33758735284", passport_number="9537551179", last_name="Hong", first_name="Fan", - mail="hongfan@outlook.com", ccid="", position=0) + passport_number = get_random_id_number() + print("passport_number is " + passport_number) + contact = ContactPojo(phone_number="+33758912245", passport_number=passport_number, last_name="XU", + first_name="xingzhen", + mail="ColbyPatel653@gmail.com", ccid="", position=0) page = CommandorPage() return page.start_page(proxy, contact, ready_for_otp) diff --git a/contact.xlsx b/contact.xlsx index 9a365f813b0e980fc7fe2447d670e6bd3ac738b8..c78df9f368db7418495722a0d3f3994da712536b 100644 GIT binary patch literal 47094 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 diff --git a/docs/mobile_user_agent_list.xlsx b/docs/mobile_user_agent_list.xlsx index a7ed222e204b2c344ba986679bc7a334fa92769d..8f2e60407320df1490006698a02341712d6ce492 100644 GIT binary patch literal 89979 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

BWakR9Ns40M5-(r%(9(5> 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®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

8+f}b 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 K+4gCjK>r71zQx`E diff --git a/main.py b/main.py index 370c025..d30ec61 100644 --- a/main.py +++ b/main.py @@ -9,7 +9,7 @@ from typing import Union from gsmmodem import GsmModem import params -from commandor_page import CommandorPage +from commandor_page import CommandorPage, get_random_id_number_for_proxy from logs.AppLogging import init_logger from logs.LogSender import LOG_APPOINTMENT_TIMEOUT from modems.ModemPool import ModemPool @@ -161,7 +161,7 @@ def on_ready_for_otp(e: Event, commandor: CommandorPage): def start_book(): slot_number = 1 slot_sum = 22 - for i in range(slot_number, slot_sum + 1): + for i in reversed(range(slot_number, slot_sum + 1)): card_pool.reset() logger.info("will switch to " + str(i)) card_pool.switch_to_slot(i) @@ -192,7 +192,15 @@ def start_book(): logger.info("contact found for this ccid") signal = modem.modem.signalStrength logger.info("信号强度: " + str(signal)) - commandor.start_page(modem.contact, on_ready_for_otp=on_ready_for_otp) + PROXY_USERNAME = "panleicim-cc-fr-sid-" + get_random_id_number_for_proxy() + print("proxy_username is " + PROXY_USERNAME) + proxy = { + "server": params.PROXY_SERVER, + "username": PROXY_USERNAME, + "password": params.PROXY_PASSWORD + } + commandor.start_page(proxy=proxy, contact=modem.contact, + on_ready_for_otp=on_ready_for_otp) start_to_handle_sms(modem) except Exception as error: print(error) diff --git a/params.py b/params.py index 5c89acf..1030079 100644 --- a/params.py +++ b/params.py @@ -29,3 +29,7 @@ oracle_log_sender = LogSender() PROXY_SERVER = "http://gw.ntnt.io:5959" PROXY_USERNAME = "panleicim-cc-fr-sid-192012" PROXY_PASSWORD = "M3PZAXgW5V27" + +# rabittmq +rabittMQ_host = "rabbitmq.lpaconsulting.fr" +rabittMQ_port = 6672 From 3593a1590468c5bb55a42d98d5a2eec0b0911fdf Mon Sep 17 00:00:00 2001 From: Lei PAN Date: Wed, 23 Mar 2022 14:34:17 +0100 Subject: [PATCH 10/43] add wait for sms py --- commandor_page.py | 4 +- main.py | 9 ++- reset_all_sim_card.py | 2 +- wait_for_sms.py | 136 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 146 insertions(+), 5 deletions(-) create mode 100644 wait_for_sms.py diff --git a/commandor_page.py b/commandor_page.py index 37a10dd..a1537de 100644 --- a/commandor_page.py +++ b/commandor_page.py @@ -128,7 +128,8 @@ class CommandorPage: self.page.fill(OTP_FIELD_ID, otp) def reset_air_plan_mode(self): - pass + print("will close ") + self.browser.close() def publish_message_to_queue(self, contact: ContactPojo, message: str, url: str): # create the message @@ -144,6 +145,7 @@ class CommandorPage: credentials=_credentials)) channel = connection.channel() # default exchange, for 'hello' queue + print("will publish message:" + result.to_json()) channel.basic_publish(exchange='', routing_key=APPOINTMENT_QUEUE, body=result.to_json()) connection.close() diff --git a/main.py b/main.py index d30ec61..e609f7d 100644 --- a/main.py +++ b/main.py @@ -20,7 +20,7 @@ from pojo.serial_modem import SerialModem from utils.excel_reader import ExcelHelper from utils.message_receiver import MessageReceiver -OTP_TIMEOUT = 600 +OTP_TIMEOUT = 120 is_finished = False commandor = CommandorPage() thread_event = None @@ -97,7 +97,7 @@ def handle_sms(sms): params.oracle_log_sender.send_sms_reception_log(sms.number, sms.text) if date == str(datetime.date.today()): logger.info("this sms is for today") - if "rendez-vous" in sms.text: + if "rendez-vous" in sms.text or "appointment" in sms.text: logger.info("try to extract the otp") pattern = r'\d{6,8}' # if re.match(pattern, sms.text): @@ -105,7 +105,9 @@ def handle_sms(sms): otp = match.group(0) logger.info("otp is " + otp) global thread_event + global commandor commandor.otp_value = otp + logger.info("will set thread event") thread_event.set() # commandor.send_otp(otp) # wait for the sms for 20 seconds @@ -154,13 +156,14 @@ def start_listen(): def on_ready_for_otp(e: Event, commandor: CommandorPage): + print("on_ready_for_otp() called.") global thread_event thread_event = e def start_book(): slot_number = 1 - slot_sum = 22 + slot_sum = 2 for i in reversed(range(slot_number, slot_sum + 1)): card_pool.reset() logger.info("will switch to " + str(i)) diff --git a/reset_all_sim_card.py b/reset_all_sim_card.py index b12ead4..274703d 100644 --- a/reset_all_sim_card.py +++ b/reset_all_sim_card.py @@ -10,7 +10,7 @@ from main import card_pool, get_devices_ports def read_all_the_phone_number(): params.oracle_log_sender.send_log(msg="SIM卡自检开始", subject=LOG_SUBJECT_EVENT, type=TYPE_EVENT_RESET_ALL_SIM_CARDS) slot_number = 1 - slot_sum = 23 + slot_sum = 2 # card_pool.switch_to_slot(29) params.firebase_store_manager.clear_all_sim_info() for i in range(slot_number, slot_sum + 1): diff --git a/wait_for_sms.py b/wait_for_sms.py new file mode 100644 index 0000000..82a22a3 --- /dev/null +++ b/wait_for_sms.py @@ -0,0 +1,136 @@ +import datetime +import logging +import sys +import time +from typing import Union + +from gsmmodem import GsmModem + +import params +from commandor_page import CommandorPage +from logs.AppLogging import init_logger +from modems.ModemPool import ModemPool +from modems.card_pool import CardPool +from params import MODEM_POOL_PORTS, CARD_POOL_PORT, firebase_store_manager, oracle_log_sender +from pojo.ReserveResultPojo import ReserveResultPojo +from pojo.serial_modem import SerialModem +from utils.excel_reader import ExcelHelper + +OTP_TIMEOUT = 120 +is_finished = False +commandor = CommandorPage() +thread_event = None +current_gsm_modem = None +card_pool = CardPool(CARD_POOL_PORT) +# used to save the current slot position +current_card_pool_slot = 1 +current_sim_position = 1 + + +def get_devices_ports() -> list: + return MODEM_POOL_PORTS + +def create_modem_for_port(port: str) -> Union[SerialModem, None]: + logger.info('Initializing modem... for ' + port) + serial_modem = None + try: + modem = GsmModem(port) + return SerialModem(modem=modem) + except Exception as ext: + logger.error(ext) + return serial_modem + + +def timeout_occurred(serial_modem: SerialModem): + logger.info("will close timeout modem") + serial_modem.modem.close() + commandor.reset_air_plan_mode() + + +def start_to_handle_sms(serial_modem: SerialModem): + global current_gsm_modem + current_gsm_modem = serial_modem.modem + current_gsm_modem.deleteMultipleStoredSms(memory="SM") + serial_modem.modem.smsReceivedCallback = handle_sms + global is_finished + is_finished = False + serial_modem.modem.smsTextMode = False + logger.info('Waiting for SMS message, for phone number ' + str(serial_modem.phone_number)) + listen_at = time.time() + while not is_finished: + time.sleep(2) + # check whether timeout + now = time.time() + if (listen_at + OTP_TIMEOUT) < now: + logger.info("time out for {}, switch to next contact".format(serial_modem.phone_number)) + # save the contact in timeout + timeout_occurred(serial_modem) + current_gsm_modem.close() + return + return + + +def handle_sms(sms): + logger.info( + u'== SMS message received ==\nFrom: {0}\nTime: {1}\nMessage:\n{2}\n'.format(sms.number, sms.time, sms.text)) + # extract the otp number + params.oracle_log_sender.send_sms_reception_log(sms.number, sms.text) + + +def init_modems() -> list: + modems = [] + for port in get_devices_ports(): + serial_modem = create_modem_for_port(port) + if serial_modem: + modems.append(serial_modem) + return modems + + +def on_message_received(ch, method, properties, body): + print(str(body)) + print(" [x] Received {} {}".format(body, datetime.datetime.now())) + # parse the received message + result = ReserveResultPojo.from_json(body) + result.sim_position = current_sim_position + result.slot_position = current_card_pool_slot + logger.info(result) + firebase_store_manager.save(result) + oracle_log_sender.send_appoint_result(result) + # set the flag to True + global is_finished + is_finished = True + + +def start_book(): + slot_number = 1 + slot_sum = 2 + for i in reversed(range(slot_number, slot_sum + 1)): + card_pool.reset() + logger.info("will switch to " + str(i)) + card_pool.switch_to_slot(i) + modem_pool = ModemPool(get_devices_ports()) + modem_pool.reset_all_modems() + modem_list = init_modems() + # create listeners for chaque modem + # read the contact, and contact the 2 objects together + excel_reader = ExcelHelper() + contacts = excel_reader.read_contacts() + global current_sim_position + current_sim_position = 1 + for modem in modem_list: + current_sim_position = current_sim_position + 1 + try: + # get contact for current modem + modem.get_ccid() + start_to_handle_sms(modem) + except Exception as error: + print(error) + continue + + +if __name__ == '__main__': + init_logger() + logger = logging.getLogger() + logger.addHandler(logging.StreamHandler(stream=sys.stdout)) + start_book() + # card_pool.switch_to_slot(12) From 4318558cba63895ad73e6fbf1d14479663269ac2 Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Wed, 23 Mar 2022 14:34:43 +0100 Subject: [PATCH 11/43] test new sim card --- contact.xlsx | Bin 47094 -> 36800 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/contact.xlsx b/contact.xlsx index c78df9f368db7418495722a0d3f3994da712536b..580e54896e75d0cd88ffe27ac784dd5f19015f6f 100644 GIT binary patch literal 36800 zcmdqJ1yq$=*EURvh>}W3Dk4ZoNw**ZN+>BU4bt5yp&~6^D&5^BEnU*x-QC~X8&rwmzMU>H$zN@sjfq6Wlp3D7xJ;ERSk5d*DZ#;#tq2M+Ihxq_~(i$Wh0Wv zubFalH?qQO+pCUH&RI1tb+Ty-4PupSqMBA*nSNwpPm0rd^_>Q++y~>(EvA>D$Szta z`SpRMrE#CQd&4F0WvfHtnT!`&)lqzENt@dc^pO-{>mDq_*~G9K%vXMKXL(3GN?Ujr zmdXZ$Pt!XgFFsu1Cf8v=zasw9_o;9tgBwy3Hw-or&Fwtg3owH8bq1a965k$7G=FzZ z8x8LZq2Jb1!BoQd$LZ-tB_+s0FCEG&9UVEHD$9iZw@=flJbP6Q#Czf%#i@<;BW@E2 z_meBir@$CByZdb87&mlG5#90e{Kzplf;gq0wAM+`f>X)!v8A zmuXfvGS!6e?C!7fyoT;p-Pn~%{zkiqgeV5Sp$X#MyvA>+b%lPz232Gz!g)i5EK4Qq zFVQzK+lnjgR?F-3GsEX^rUj{PJRlKk3Ysf5GLbfUi@;Bw&9R(Mvg7(`T5idK_f{tF3G6g=I|^ zs=bf&u~p~^yu><&F1LO+JVHZ*BodjSvkg$YLN z$OYB=EQCY$==mI7RYJVx9Dlr8oXTMRyjT?D!B%-Abyx^}&+`o|gZu~=)_$QB(x_+b zFx=LiuN^+o)loqq#}nDnv6Rnqsl{p{dga87$QVV(knJr|c6yMc_|Kf)+eFSVg>^)} z2v9+9cTQ$WA>I_PXGz z(&Ms_^l{L_S*^(9^+k1_54vJbITdQKuMw$KgwT%J>F<3(q`STp*LmgRJvf(+VRMO? z>-(0RpC2N$6_)5-jTL~!nHbL~t5m1${a9^FL4bt3f^5Cv*g|i4Od_@P)!E`sd3MT< zYM!?Kp|WWwE;q#&E-@sVZ}z664;V+y*B6_$&r~$E_vPor8Z>Vd-#_xF{Vc0&dF5C? zr$m<_;ERU1-mSnQKE`WKmO_ap$bfhCE@|1I5HDEDO5jC9`t47>e z-cq%<8V#lwmi+WI;@y+mq7Q1E-c5|T223!m92RZjL)iM~5dja_vet(VhktfJJ$JA& zGSxHF(bP2mbC5i6V_z}mhk<$A4hw_(H(%%ydIM!_o3Ghn>R_mKe^HleLU9&9m)B&r+N< z<#KDYqt)5KM5oGw^=<8#)AqBCW6z;Ir_=S7*4B}m1QR2k;?a(FR(m52?a>a_2P>^Z zIK(()b{`zL{l#!|ra~l9l)n2Djr`sQR$u z$<9&;OY=(e+Sq7Wsoqr^r>)sK!hIh5qr+0PDIF)fousL9+q225kxSzk@17rp98HPh z_^hogg{&Fz3_CjPbv6$bw&R8KG}q+5Wp6K}9dU83vOStSiK#qWRWTl4Gd6XyJ(=AZ z8CzQ5KH0V*tR5>n+df#?vocbyEInvFA}6kJ^1^niEU_^=sv#HOps<{1?i;hWlXcUM z;dZhdTkX;NsC@7}rmXVdFfcJjl-Ox^ATNyOLu&Zx`r)i6+T@z}s`BwdY6J@l?V6$T z7m;Xg3gWXEL!&drk1_o0RIhqo_#95oj4V}-wy+qD+HY*N$_U zUGpCV<5_TubtVPH$! zsc!Bxha;m*y~}5SgLyF9x}n&TAVQs-l_qa$kb@?FYMM}CW&gnVQx{d@SuvKQs=HHu zHEsI3JC>uSyNbdDi_CsHRz+U5tjvBCmLsj3c9QFn#Dl&)a`832N~Ov;KFhr;UGlM% zYu7arukNI<735nNbRX1NmPVisK01nB&R5?+HT$S;Htu01&JZSFZWzoj>b`jpUH|fV zN+W%h&aoT4Zu(59$ZUAg8*KUqA)e`MGiICD=h>Hc0T^9?I-BPtMdR!HP zH(IJxTd;Dho9h+tHfZ_RInd{whzC@b&ZkuW+3wAh_NdOTSRKgTikY-_HsS=V122 z!|v|1$bF}J+cUq$HTKv|6~N4jjOeO(gZ=X1P^)`#67Z%t1KzO&5m%f>LspBEimwahvj4OHi{58EG8zi`-SzjxOhbBQUYO|E%)5DE1d0R6k zx`d+462Xrxqc|ewcg(I)yUbPJn#;DE9#;%)DqSU_XWtXFtm&>;p5PvJOgS`iOpcH@ zW8>VFC|-=_=G>Plb zvzuu&qUB)CJrC_l4wfrCR)Oq(8`S;{vnG4rCyE&_FMxO2UjLZskJe+RyLf_Z#&&=7 z$u7YzPQv({p+t>3=ksa$c-v(nCe8%p%u+$rc2*P?PMAZA&f)OXT!tM-CMMsc=o&|L z?#|+fA1*Bd*$C0;6g}!7%Ro3~*(wnm=M>}cdfu8lPl;`PUz6wJK)7vXc(~w=c0)6| z?`ABG!0)aii7#Z$A4t%kg@veDi$IZhYIB5jhnEVY_!d71{;vLPr=RPMwFs87l`lcG z37(;~@#h#*lYD^OGGR0`VHRWHZL;)RP6+Vitoxgx5?q$RF)F$GH^CMAv8mejBlbzr zQ4}9jlWm^tL>d?nwT#4hG$`KsJ8lk6e0#lu?q#&@3N?vLhfhg`HMi8ZTAMxM?x}9XT zZ0JK4coQ2-L+-fZh-uzs(I{H~2C1=ZyC1xv)g`M$FVTU5rkpdKeetetNN1z2NGo9< zPA|-yylxkhi|oP<)JR=gWvk?A6E2Vl%)wXe<+*!gyLEMvDzOFpZff3SAv?{+_+v1H z+cRc&#N=Lu`A&NkW$qTW7#sUc3DqV+t^W?&=MPRza~N-s$tvEtPa)b=I> z4ygO5{y3*kpM2T>+9f#r`&VQ~eTVNbG>E2GJjvn)pEjM_WHgx}N<~9FzKBLf1pDvfteo#nfJIBU`+rhkw(eKj8ajvG(WK zAjSGOmo2wxru~uqvOyrn_fbI;rFzt_4(J51s_)VK4;YwVUfyW`15qCY@JD7#%iLbN zB#heIcEH44hvO z3@Iu6Ex}duS%$vnFgY|Za@QbczZ)+i%euq7lxbnVm%wP;hnV>ocuio$wP{?+5$-HO zRs!=i5Ri>Cs`$?CUjsI5n9pwZ{}Hgs8YQIIHXC;A8B7jvN4P@;Dgj!!Z2bb-|tk_z72v1OY-dMIj&zU zyl+7gdb04VUf_)x088nA8}|JJ!gKz9k#nEn-W`m1_+ROv=#rjjA&`DGzo7LeXa7{J z?&p#TCYS(xRSv(vb!N6gzL`J zWTmLnq-8W+T6CkRy7$X&bUh=#|G!@x;=jMYpvAuMlAyjfQYohsfIm-3`YsYhNDN-G zn`qSP3fW!Vgc2^A*Na25w*rTs^@Ww87^NBvd=yABVYlW;Z`Y%^oq!pMA$eV@m6Xqt zjtxIF5|M0ZJC3wQD(8{fo3NCyCvB)?+VFwh-!vjzg@rtlYqe{Cs9|{-PQiaGeJAh( zHNnvC0S6r$ibw%PsGCOUGuNjg59M}P-{%pEv>_&BB-`eQR*`~me2i*uCP29H^Kf)x z7ydrLUxg{~`*78?{%cdbP<=_dYmIb454=O=Yu}Jzl)h~o_%_W*H<0ieGeDJ67mq&w zQ;!IV&DFqMmt?(^=nHp7LXl91%Cm$O!2cZS;gTb|foP-+ zpOk-MFZ9*39exGJWjE7hx0&~dq{9(QrxG=93}Mg+egzmPI~;LzD$(+I5C)0iSH|F0 z#^6_Y;7}^zBpjZWm@YnTOfo%0eJ0IjDyx|psTvqG#ZrgB;e?W>f;b40rScwGd_E!TaKzUE23eQgQr;tn&nI^~PH}b4uyxLebj~nz zk_ebO5=@&yg0f5xSt2~qFpPQ&$Mn~UP7Lk#_cuoE6Tg`1OG^3Velbl$37XQ6xr#^G zaPWdnjDLm|JTpr9bpM+V&t`-=rNj>ps9w{GuP}kz<1QpLz(&@&8H@!LV~H*gG^3 zPg6bKCV*BnndXzX#TWfFw;bI7n*Wgu_${c8UMkd_QBG17yuNUlfi5TanQfm5wov#C z>josjOZj!b;47ezcq-(9D(UK$Ax_FIa(WMIE+8)XX0)U?SW|fO*pOQr zKB}8nJHj#?&n<5$9-|{Psg6BsvlS&l8Ym61nXu*LZl`L?j~X&@E%p z5959v2pO71uDQZ!MHkLj6az_E5g1+cFfzvVJK!^f@!E8qb46kM;*d}eM8@S^saPYn zob>`c%<#tb&mnMv(BsH$^_-B+CJ7wla$26?;*-@A9>ki(ZW(hddF(aiq2Bc#b%)=r*~ zCR>9hf5TD?oW9~RP_x;_g)+zZZ6E<`0^@huaD8x!RRf_7-EuS}#Bg*t8T}(}gkctHZML_hs~%r>lBNTY;^$06`&;gjwT}s@_6+zkdDO zbm4Gdi!iuWKqjF7POG}NS|NMj-BpD^Mqpze!qgZ2(C^pcmabW-mU|7Yfb1Hx^DBJb z@LMi-+^-2W>t0doCb%Qob*C56k4)f>kRn_cgPcqMG@?)-3JYU;P3NIfugC14~*jq*^t#+*qX4?p*x6%D!d zE;q{KA>89*3_q~Gw*JBIj5>q6R<|k8@nbI`J@&`Yg-zzw|9Gj`4MARcUdliG{vHn9 z2_f!E99%X%vLBf)x*ohxAPM>tLRekZB;N3CKdDPeet^Xu$Z^8pze|M3p<9pv;LoXpe z3%5AW1d{A8@97r`Jilzq5=aEG{abCV7)|Bta+*g;ex|ke{VnTmx{< zz7}98N!p7TKqf%?j)SkuOwzx97(uv@0#grOIFJN$n(*#IRkD!2v1{DWt@rsZal#na z;C%hIr=>`l*&cTpe5f7d?TUMc@Lo{J)|?U(KkCi`vw)hx9bJhhuHWyGa&ch2Zx!=1 zk08lr_G6^DLt%s>Prk5*Rh`$+AMTKEvW6G#85htxAXbCz-|=z92(62hne%a1>?@!5 z_8Tu0aES}vA%qFm$9X2=1txI0kqecG`oF@jhg87;s#phA0QX;2gn=roK^4)Ls%QaK zaALhj5&u;M$>Uj!0HWv*wH_Dogu-w6-`PSEMiUoMtGP^)4PZ2pBzxi#N#8m7x@rJP z>%T~X3)qy8u?X03ydzAag7~A73v~#-G3R!8WQU2Ucnx-E=P;oWvV=LemFJ4fYS9Mm zEj+*t0qN8acxnHB-YAwTJvWbC^mg1pMyuv#dr*axfEqj&XjMIwTOARDK0dUY zX-w>f(o~z+ebF8Oc0iKUdX1u>dPPU|cB1 zV7V%cS!iZ7dLx3=q@X)XfRs_ap_fZw@{wi#&n?Q}`|(1}>i^5T6kFfy(4Z=(!aC>)ZIB3jKGd46g*ULwexH5%qxD6{3iCPtgF@A>Dow z%yHwCiPW?Ei6JcsL>Bz`mdK zJ>>W#`Er}X(t-jqS9Jppcl((RxR^(dEtDT{sbOrNJ@>DnJWPmRehV_c8HF7RSHjZ*&3XE524V#2e;*y{Y6iH0WCH5o z@cDDtlRW+-J@iPtdhPdNba8LcS@rQ&{!lx&n)UOBph0vy5FDm)x@b68>VIDn{=Iq4 z%eVJ7>grLI2N_Qk7|f15{W`ZH#|eJx!v_>T{Goq8x5a1RKNTe`T(oL@IC4t+ow^eXdrZT*ux z{64M7Es?5AhLD;>l+12jK52ej6rQ4XGMWkCfXt#wA8NIivy!3nEIiwMt?!^8>ZT^* z`f(*( zuOy(dWDefG>HNUes~m|(RVg*x2EA4mT;{L=cdVjN)B_v~A0FijMS+`%`uSCdn-JPK zanHX6eLQ{deBm>9t zQ(EYaQnbtBmyj+74Y)o+`Ux(@|D>dU^EwLVbu(mM&x3jWH1jX>8q$fF?3$nV{a;E4 zBYKf?HC&|NVm@$3-BCZv$nd1$?J{^H62AMoCX|r^@8-G0>i>tX$bXgWzdYhd#Z56* zuMXMUA8dEeS#U3=u&;N|*Th>(1stBV;b=AobI?1mMp&{&`n61a&Fl8eZS<(Q)<}Sg z!8fnJI&RFz;K`5bS2M8wZNg0h)zd4Cpp6U$m7LU!RndRic$c9bYHt2O(5CFQB{0T9 znqnrDA1Q)Xq$q^8i^q>9D#3*mvH%+byHKUfG5Gx&q%8mxnj;Hwb@^;(z#?gpVTg0h)_}Q3FVIy(j5&DNNqB!* zZ5j9F93{yYU*p1LW%uSty;}r_iVCFjW?1y}wgv%<(nTVfFGJ^*6-?)q1;T$Q`{Fo| z3o%B%{5DS`Z$3}+B=X};y#RLl2?la(cc0b#y7#NnPg>^lg;QiF7|QD(n{!vFd^MMk ze5d>}io~L2WAdGUgBix#srQ`p4K-JY6zeywAHp%l2q8O^<)o{gSgSv(t%+w)F;7QL zW>dDW5=Wb2DPa6D6;@wVfFx3S_@i;>;Z=+q8F;2;mP!j#@0;7#>-xfRkF)RbqR5o? zl5pSRna~UIoV_XQKfy0|wIT5B7;+_HJ7Yo+4^gx%d5DaojVYJ2|6436N2gIPytJat zna0MZK62S;5*5$e?a|GFOY$(1M8{+edRF8+jXMo>u~VH*#O*Fr6_!j-8e)TZqGx3q zo>NtFJ`-&#lrH8T%iC;*@0_-NJhRu36uae3rE+V?np-}~s1)z(R2|OS2L&6S%($W{ znB@V#Y8c~mvl=`3qo6uMJ#?(s{i!w`>Cky2oVG8LzE%{N0HtG}F`ViUdAoj*R^WENPp zfzV<-m_yY5t(NJbs(fgw|Ef6uQ#!`+26dms=`Ls5c3ebq@&oxGy$XQ!t!vfB^y|hZ zmbU`U_M8|=Vl)r8Hd&Qn?upYp*g8d5VcgGaY3R23Knu(|1QUUpqwp0xFL2g_v`1a1 z-d7QeH(d#mj~2d;=T(J=R@eyWM&PG%;{2N6)0g2fZ=JW<@K$TlT6czAJg9LCg|dzvnLCQ%$mz;k3I#4N9IcL_B z*RD-#zHC?MW`yH*ro87ure9k;WG5=et(O#9v|f;n*hE5~xNZo4QuXB>g!K1!>Oz!n zG*0n+wQexu0v-mRIi+q!Wx)q7mkrSGN7m$PIkYkKnj3@&sF}7Ilg`|x!CQ*n zLZ(VBkDDv2rhAuWqO3ZDM)~k5S~T=k%->%Nj)iqG_EWEyp&8Hg|U zG{74WM8&7^Z4>!9_B)Ms8~31mqAoLKRr7^8)3UXDMWli8#4hQzv2 zBK7j#U{24TMA!k%v5xsGIp7%^K;CeJmYAsGAWr^0rDfK$C_&6p);#?KKEzAQjwj^ zy+~R_MKUkg9PJ;kH>FcrmI9+EzC$8MP`(|cd9)j+&6*Rf>*1a5^|C#$y56uRi5^t< znC=ZIe0gEZyU<*$l6?|($ir@H8bQrM!&}b7pn;ahD@)GZpka;53ojRW$VY`9n@J0+ zpmlB=>Yf9uj#WTdX-8EJjD(dmRBu`+^*J1Cq&q^}7L2yoP98>eXZmP-Yx;Qd23H?E z8-!((dw1U$>S8-t{0llB&6w(~#ASTR#A6 z#BwcbA@YB2E>Tb`$wxG#(9vcrqEw^11Q{ymGNeWJ^s)VQ@kJAew#l}L8c%>|Y~9Gvs-V4IP?9jf?qFeubfpyLs{%Cul41Z;0%_Avtp&iwg7l|! zPUdY8KBH$@=0qwzK}k?)fOt@p+Yn*dCftUQ(){t{a3`{TVQn6;S=-M6k&v9aWymmC zRLY=UY1`K0zXJpt0$iFtaxJixKVOBoYV=drSORoD+>izBY1PmNh(^00?V7oW2>OHE z44?tsK~h5c0L=uo&uv>3VfbB-h3q*9$OPNKeqjRFG0E|7z1`++Ig#de$~HYB`t9KDJT#E z5n}Za1w2BEhlXsaSXcuZA$0iJnR3x*Cpvl1xaasU(EL=`Un;rG#h(=}gtdXtAn`9y zP~uMx#m#@0vKDXv?T&cX1R&L_@tEyI2@DOcxv_1qgK3-qDhOIOh%}(=U&j73Bk+<1 z%H^4ZkN|P00qp^#Js;)UrV~&igf`+5i;tizp4SddN$5cS0>BR59%DeIiEE?D zpmjj3bAY7tage*FdISK8pCi`n=LW3@gJ@C67EG~Azd&`6_>+qZr=JRiZVE*LIWQ$b zm$@MGIS#^Q``q^4ufCWao>zCt=|V=)7o!>?FK8jqrh>^1jr6aaF0}b)O@A-^H1ah1 zeAj{UKt;c{1%#5H$_A3SRQFhU?yp}MmSUK+aPpECa&uyRkMGv$G{PRx%(O^5?jp^p;_`T&X z!a)^(u^u}7u0o}LE++8rSk4va^gGEvJ6(v$<+tL_D})e0473Z4^sk)G73cK%H!sja zp^Cc%2(nfF=5(=D{)XnCAs=1L-qY16c!wD1v5nk3R&Mrr?dR|8)n{P3!@o8uiTmjve>bmyU6+Ii;$L5_4ZFq{8c*iV^Qx9*MKPBIZxNp#wu+vEpoX4iX&S&?s`zukhO59_< zqc%NQ&j&d&OYGZ-%ePXfg7d7DEe^_fY=J9JtM6>t;%4#L!bh=FmgknM=7+?svN=99 zFrN>e^>p^F#U4EC?G%7vR7oyjXsj%`4iEhm0rG3md&k}*@M|5+c13`NW=_lw_%MI` znw=^*ZE-#TCOlJ$Q0W%$R!|C6;OX@6mIW+9xVBPu++15KjS4>R8t2k^i51+=qc*)4 zC3?SRkM%-m4cHM2xz=GHzc|ka3yI?pj~1S(L8wFx2^X8W^LQ&LE%rL1PKAWUb`Q4> zBylH9t89u-#pqRNg#;qn2l$TbM#pwa6_(Dk4=6BY4ip?aBDIw&9Gz!5mo}APb=q=i zRQP$#qAd>EU>N7*LNf1tW@|68w}J`ZN^9=JOn6ih+CeSX+c|^4sM5$@^4WQoN=~rw z8o&-HxdOFGgQS2hYN%}m4qAu_EW~Db8ubL9DYVW4w?{b z=j3Fmh1Wv)w8~|l4@SxmYTc5xO_cW3jSZU3Tci`n>H;=LOa)!BRMfE&+3@a^8Y}2e z#>9#cn{GbDf%1`2TOV0MQ2zV(hWyUz@r(O|wRt(r^g-^PJJ$>3bDn!-ii%L_-ISEG zeq9bat`ZR{(@U0+v;NIiC7Hc~nLa&DRK(ukt9*|C9PrAH16=(ybpeV0tM4;Mw~QZd zr76fogzgVM$=6u7H&Bzmc!(?C;#h7PtgY=MO98uOOjQ<|k+(}r(?D%f?`BUx^;XKy zm49(wiaM|Mrb~CHY#@7D z&@g7{=^N7OR%yVz-`9#*(W>QJ83eCi(B05{z=mq<=z~2sV?8(YaBvi@s}Hw(ZLBPm z`$Wa*;BKhmFLX!?6CdpNc?OrhWl`!-Emjt?BMLwX5e^h zfag^G5#%)tn+J~^PI37j+V5{4Sg~%i^a=V{asQgh_lJ+vXsePGI7NkFsNu+>+(SGcvY zZmqPvY2QbKy;K@f)4gP1Urjs5*3Rm1u(@r#ERHs&;*%M&@3*yaV2p9PXC!X4c9`eH z(`Gw5b+9g3Av*(G%k9X(nYr+8ZDwJ@-j>Iq*xs78d{}_-l*Y=6W6Pm}v*Rs8#EvQJ z+3Cqj`{p>y!K|a5tz*ft$%&;Ak5if9#8_JlPjrP!bd0jE6USJYlaoJ|)3R@SVoZ$T z%q_|BHF1?nCBE_1t%g$7k*UCCW!BAzt&Qfyp)-BQg`wSWGtq;-?u|LSLxzd7%4?n{ zLkrt>`!!BH9u19&4Rcfc{ksuwkK28xPBsqMIGSU{(w2jg6sxag9)6Kd2z$>)jbDB5R&4f4KTZXM%L+$j??by)mC6^ewTOo8ptV#!xxAo_KEX4P0CPp zr#nm~dC@RK33^rwQR+JzY{gqe?y=WlgT;;UT%zFIWPWQ;OHyxTp6r+jgw!)y-P-`XBR{ILyZ@xQi~-3^A= z-I}3aATTYXEz&wCXYGRlq@9g|0=%lI*y~?}&F|K>0fOru5-1_PaBu}IcDi?vy58hy zcWq8`6vly*iWz5g1w1f zp+zzVYcG}(lIYj#cP&AS9~weh{Hqlh7Y%~+Ed})LF>48W_!DEbIiQkBY#$ngBz)^<7FU%m4PJrifVu=)K`Vm3N;I3N7B8^2@d&GgqJVT1g5flr}BaXri9Jmm#A?9}@DZWGbzd>Z%=F8+coc2+{nK1~PCvu*+8Ti!i{i+KYMxan} z{jDg2u%zS1%kPEneanmA>?2jf#OVwDnu5|DoI+$D9m?n`BDE7f9VYX24_R`*pF@Ai zi|c-sC;`d$X)gyM60!kTyg+*qk&1d*`fFjpxuV`AEW75}Ct3BTBF7~?PEP)B{=)aZ zPwNqc$dUP*cvHmgr)O>iAuFNY?d?W~B^$F`^(1BIFfsO~P~VLLzu4MqbRjVu;5BGk z#?+=TB|K1~@ZBK)z>#7?XEsRgJ9b_ixt5>M#V$#1C(G%&+|NcXw z!TJhVP^>96mDTcNzhre|J=;vHbe$o_twcsR74?#s4A~7s?wKZvT49SsD!GvF8=u@n-dM77yg`~`XqMXB59b<{ zAZERP_oiK0JU1Opt_VrDJeNRUxLw~1P~B9yf*!)&`!|Y#N%aCyBpQo~O3QuYQ*Ln> zPfS^20V5H$@l0_^@=xC2TRH9Ot(&L;s){2zL3mP{bb5gvd9p$BU)D^f_da5Z^6E|d z{d>N9=iYP&9>%`SE!+l+cxc3Sngy$b+2X>+D<04=Xu^&$%%;>q4#>ne150_1K=~$N z@67fUWQPu+{aC~s(_mbUsD=D;+q)3bYt0lr`@l|X(CPbkC7(`J3=BcA_U)6!nv7wN zCX#A2=?w2#+W}T;-8=M z$*JclCa)k=j%jdKY!itK7m45YJ$h>B+e{t!JJL_mBfv3l@+UG-w7VuWlIBPgSUtp6lZ*!?l_EB4C6i2q=t&vS%p3lp$=s24HD% zR%`-T-#=~ae*isyC#)fF_SigqW53DH{yLuz5iv=T_~;ZrCVdZAMXUAjp4uM8wLOX{ zlQG2=ld$AOrID!#^|hA#J?m$133uU+rtMNrAS#vJv)&I4g@9$K)0|zS)cc966qH$G zagHnhLZ)K?&ruq*o4!Z&x`10yFT~OA+|gu=79`UIA`ijHSxZ@k22F^zkH|ZRs|4VN zl>iWNA3W>|zu@(emRMQ%t}zgeS^I+4O9K5@VULU({KCx)t&idHnkSS#;l55?tsBDCNJKM;iQ!f~{IcbDN zt`QwO6Pk2j8b zlbx&hWYsNNLHs!@#pBodSGv(%O*Ztf*Ite6w36IAiV7*$3X7ErycgP6E;nzPMsuv? zPk-v;rE&#LF!?URR$E_#O69$)GKG%0uUBXtnx)@}JVbkqhgTI`5k<+AAZPwb^;7<) zcod?bQf5!?TnCq@?adrJ3`D6^m4K)U#g1mg21Q9ZNudX?ww})~vu9mPOq`ImnO^5V zm~maj_bH;p?LWi=nx4q5r<(sp78#8w`w(}8g}_LfE-T+v7pdyP>>&d+8~oKgn$;ar zaY7Z8Avfjl{L4#u(@&JfFmDYr;cq6(c=0^zTMk`=y^fnCXVv0~Ai|Hte46#$MU=H% zHIWvd#u1BkITY<$s0Vu5tK*wuM*R!V7yFqh^f+1kgV~kjt^j`-YDfP!I}c*bS6-TK zyba%Z;2`vk(d~8oBw9@(Qx;?7n{P>0L*qz#aIr6Vv|w==%?-TWtGX#e?N?93vf~g9 z-%h0>W8?TFQoY9G%aYje{L)SNDlebYl+o#V9dY#JY1retu-(-5GRgZj-*mC42M1mK z4@~r>twfl3u+RM5p@|Ztvvl;XKdtkt^x`QbTp0@?9K;%&Vbnu zbv&x4%<7Jd8vwQWTY~sE%0E$On^-h_O<(ab*+}gU;)8~P!sd?$u+0JNp`me|Hzh&0 z78|Hx-ePB^XVblqzY^G9evmvfH2x~Zwa$HN0U1KA#wneM{FUa=%Gk*Uf2k{ytxM;2 zsbf{YJmg?{9wsMz0zqjy<_o<1ane~I50c@B#~-A)CeNxi0KV%cW9Xd1`GOX4RVIHR z8hXe{#~01{5op#Qci>yr(K2VO0#>iw+oJ7RfSKh7ljNAp3u699z+lx6EJKOjc|^8n zJ!Lu2B3~V=O)dHeC=3xogFL(Ynw#{ZWvZQcukgs2UjHCAG@fQ0d4{~Bj_v%oyC2&L z_g1=VJ4+KW++eTNFj)wMC*KG6F|@Uy0IW#15I|;!J<}oe1pTn zs+ICu|Mc$ls%Le?9{j1VZ*NJq7gb?M0)A?Iezt~DiL!@2JO;0!mF{iItv!N(*p^V@ zlE#evy80eMuY!Wt8mD4WsL)cYjdCCuAnLj@H7T12|6ACzYYelA+@^s!Pg%adOqmUm zhA6mh5(i(_3J7i$H>^@Jk;?r-5}+JJ0ln9{em|UF3KmzHbemIA{P2~7K{U`(I98R< zLne!{+cJ~9tu2N{O+z3qd%hcDLS+oPgpxT;e_UY+GFg|ZlG?H@0d0T^dsxS!fnjzo zfk7;W5;wx>J9HyVbW*;mKOUB<$AC!UH)QF&e70wXl!~WX*8)?1BouEVT{sP#%;>dAh@wck7XU!J0%DDj| zP27j+F7cg`2unrDAK_DU8y@^%;nx|?Mm=mn6{*m`65+O*T`Q{bl1zc@W*jJk_qROn zUhHN%rv^f00%>Wwp5s^Q{Mg*7K-*n;$n~>p*iy%=nZG+-FPaLv-qyamiccU9+&Pyo zc1WoF74c@WGZB)0ap9zaThHLCG-`q zKsDeJACfT8eg1MDl16COe@!08CVS<$l$;SrhH<>fD&Te+fI z&JdhF)fd_fIH)1jg9;Xvwyoy3U`=|Vf}N=Q^6EG4ZfI>BWvsU$eFeK2I#F9*7(n#k z3(a9HJev&pozq&p-tPjqj zu^V?GNy*6!BU-*gi;2GI3sCJq-=dFZOFN-*FSxg9! zRX~vOAX|Q~j-|#v1LoLbLhtJ=tQx65+xbDoaZhXKL1xSmaiXNBY;Jwb=V7xXVtyEz z#r3AOl}H#bIF?M(#dYNvHOIVrU>ef9y}q(lsLEL&aopFg+i>j5&eXh&8|Ku)m*sje zQ}{s)Yspi zfgi+PW)NC&4wKp5;lmhx&+%uk3+Kw?dYRRV&i*W|FrZMV=w2OLY&EaBwK^Zf?CJ!= z-rMp8JB9kRt=M~9Bk;=#f6mX`I5q#CM9i#`i{a0%c@INy&B3ZRLZ zNi{>8H)z4VM+FhOOaH-2eR^#R4A^zL#r1+3^9<}y1otDHkib=J?5^r5B2^`twOT{} zF%^X3Nw1jJn6L>YC=;paM8HwtQCVN2HC<1c;a7rq595Y&_1{?gpk+Oz$}USW{b1mj z|Kgg#Xr;&5>v!O}pa>(`swZR#xm;16zP~-n{HUh%D{7|JmjfFQs}?v=$!NI~2NCVb zgz5hA#>)E6eqYVOQuoqP>(++XaUp{j+R}(&@vDV1;kz+06&~^}_NHv*?$-0)PAp3l z#b^%`jT&mEHV95h;f_q%mA27x-f!fpWIjHa8fou7*rV#2JG=U?UtbM*!##L?wYiR_ zf#x4?xTjJbKuQI#w>ATBu!g)7{FfWl8TwA@R#^q32)bL2F?nas)++GAcW{`J2jg_m zBFG*_>@GVO=hfd?PFt!R%Wkbh)zFO~6>?6;#@@l4b!-K%xip{W-n!(OVd(}+8A3d1tS?vIlI^ILWUPXaqF?*m1R-+Dn59oY3C#nZ9zizS z2PrTxa6;(qNp&&L31ZQ0w+fojG4wkyV^!_Gdn|wZW*n)#&9l{PtarQ<3%m)7Vvp#nmk7!Cf=B!{8b$xVyW%yIauU?gS?|1Pul zeWmcvv|9%ZqU4~_kKCYgw=AYII&6G7OTsI9cJk0iYqS#Q}HCQ+>KIDVO11|ca8AbRYAY9X!M_5SghJp?gf^N6lN128?Q=yq1L!hDp z9-k5cF88*m3KCP3P6SdsPfm(I<1k{Ab=+R*KzWdrtJ9xT(Op3OAb8!AnFlS)svb*a zkvO+LLsH00jLb5V=aipm*+w0q1su^a5(Dc$`$tnkM-D9NV4?Y>@+Xo>0N+T5s=E89MOk)G%SF zZW*FKmGg3{tfAGVzH=4@&yRA%W~0eaRI_}2vcDFuGh4&$U<~vkQ7ZcUiK;o3wh1_y z9OG^6oYOY@R#>P$X(rGiI}EIhayGT-WM2tiPHyEgQiL_#!i{BG0pl%OsOrf4hHRm} z@oWLMSp(n3M;9XL)4a*%d@mtxa^el!=f(H8rT#gJN9-)0;re`VFw=FlM;9g`Jwg_x zLxPHa`flA&*`GvVFC#}`$@*%zFV`DHWOx;h)IBnOezByzK_Mp8ZW1DbHJ2g=Sv>ub z?;p~VC{-8%08mo{0FeHg+s-cUZA_hi?P1O8Slew4pgj{2yAyLrR^jy|-^G!SYJ93U zWohX=Hu>Nf2T1G80S!?klhy;-Xzk;&IR$*r2;5LmL5*;6ZK9>w7c`0=opo|cMQA-+Cg^>)5SOuytCHiam}x}vk5u7-{`c5) zBXd|CkG=P#UQq$JD1vb~6C$nHsVJK4ehXIgeJEWc`k54$#3A-Yl3bT89I|KHk?(Qu z5~0x2Md@2s_^d}Cnb;Y}wsuA`Oc9JT>9%YPnlH!#eJ*DqqmDkML0j9U%5)}kZ#DKs zuC;kg^4T_?MX7IJeUsb>T=Q;`sZpmqUOSq*s$o1utR;7$fp5kGey+HDP1HLTqT4cY zYA$o5eoXYbzk8|f-pk16E%tQ(O07_pXSmxub*|8_)E4IjQ_K(12CS*!f}NAHXz>(b z?M;Kmgst6)8@3Z8FMDtM#Q6g{8^Ra1KvGI%ZA3^iZeUi=4Lr#GZu#V$P zm;?vCo>T-s^VuKQULNl{{9djuQC{xu^&A=Il zb({rN?<(na1)-QpyS5(PM8 zY&AH_^rNEqx_xHsLDZa^yB;`0zK*VHC$zll^xv9U!^4?-d&ST)$4%}h34MTKShq}0 zB<-5z>UNmYjTE${SECxtTR}W75K0Gn$8<6+N93ES_cC&NTh4Cl*~5suC0PZ(9nL#_UwRPCOt z4)bSc3+i&;hmr4jqZp?2L%#7IZN3dE1jZBKuUj`xAGnscpJ>5!&(;o}8F~j7;%*#O z-z~0qttAa!@0R)zBfFx!Y4QV=zrb|bAdB>v6`rRpqdm3>{GnTFK`7t$+vFh z+;%#=;gy<#JHEp4PDEvNQ)C*=SzvATBYvqhkxK$;CXcKep#Qv;JQjDDH>&uY zP$df6;t%1BDbu}!m~MLHE{4WnH?o$Ci5B!dw;Xi>ph@yWg@|&{2?!-Rv@I>c#Yk)V{iz%{ z>7hk^siN;Xp}Vl{uDtg-PUE&#NMOq}SVWg-)-KnyY6^=r8F;S7ur`Ls6afeC1y8e$ zgiqH$#ili22ij3J2b;`6ZgaX&lbAuER>}pd5fXg`##I_>O58B(TqKW?M>^Tf*}AX9 z`1En;6=k5%Gbu#}QhCaUB=O7dIPBbzNR}6U)`PH89q{EZK_UsQnixh|K<$<5JeC#0 zETP;`Vz2wqi|EG}OSr~ho=<#j0f(R}#NU>;W#Q|K6MXxFF6XG7;*EC-g(lOOg(4D; znU5n}N&R5=TWT-tK#|Uy1NG@qwS;t_9caWm-I7dfs^(MR$Ex`?1v^5k*DfYo`AB~)Yo0_HaXU$uqJgtn1oQZ1;-$f|OB`grN!s){-0o%)NYK{*o9 z7Y3T3Y&y@OnIDH5Wmsy)p~8@qHW4}a$hyU#0h%E%Sk8G;%qG}-NVJb#s5Xpm9XrJ0 zMOh4!0`M}Euw7;N65eX1mb>j6gG*{qmRp@h(=scCv&%48iFI_%r$tRrr(x7;!H*UFz_hk-naw-fMPxNpkPC2cz8v>Hr^(Sv^EtzS| zJjrpwgvNpsyo@pMa$9;(To53>=7AP49L=6#ksfWF;d|OQ^<)pjWL2c0L>=maYRa`! z5IaZwQobM9<5nDoS?ARwpx(k`Wf65o0aRB?*xa3-4dTSNV0N{Ykg;-+*|b8?c>2hX zP9ng~PxSF9`*u=+tzZ#|Hv6g)mBM8ZkpY!*aiDk|!_cD3JmT-LDyFz_iq3+V$9V=_ z68p>=L3|9#z%DTgfB!~{E;Em2Yg?0%vPX$&d176XWa)+cx z0}?@ej@rPkRY~1#LMXTz_3E$$*)jAY>4*teS5Q9EQU=pAMJl$ig;bMh8Jsice5^mR zsu@Tm?Trk1L_QK>2zupS0*x}hEo!RYSN4xIG3=YzBRUyF7~*))BOi5?$Pv6u<;7d_|bl# zM;x$vI`lZ(en3eGaw3i1{>YD}F;PlolEuD=jj(`XA!*J4XKjNk+XyG4TgdQ{=$Ia( zm+HkZZ8Rkfs2C2`WRZlJVhR7{r&p2?4NDyXQVXa=J`&S81)u)dK9^9-O6eX@B51s- z{?;i>&3>2W13qpzD?#wZAd->9CPBa6fv%8Z zeR1D}7~t!&S$2BlhXEvlVEg4GeySWo8_>e#_L++irjVp^PK+Akc0E zl{hs>;|JLjP*210#XBq3gFD6pQ;lzT`mEMn-BLebI!`vSBZvKRqlEP*Y(yp^L>EQZ zjK0`H#iNtKZomF?C=toPW2yT_KPX=oapdt1>3ui)cQr8i{ZV_&a}LnsyJSlarWZHo z*%SRWj~mG^KC|48Svk&AXF9ssF3TIU*Y$JuOD7v^VD=Z?vnjO0x?Tr|boj-Cq-kcw z#vTqVX>#8jtDYBUeal|CX7JIiIwB6LLs>h09pn6Xsrx}`^5ypa3&)JEdG&FOL2Y+` zkjECJSfY+!$z#~!0Kl&kl652xwDNRsOL+BS=;K8rl_0jAT6i^X&qm+=ba~(Ld>NZZm3?lb z^>|OuFnoEo)`4XxBVTYw&pi!XYc;(OPr9>jf6&WxmdYb7s^cN(piMCG=8p$G-2ly0 zwVv-~)syVU{eXj)L_5w>a#yiuJC{Uj880u_3!Ht!Ur{6#GizH-_(M?#j=%rK0M-%2Lkrj-8#IjHiZHxFNuD)=?#cED)q)*A@_mK-N)}wX&}>r*|DYmqK{bker7;s? zBGvq~)*>c)TQD!YUQAFjPwt|u>MHt<)h^Or(wB-fT}fNXRc9xom^O2xjp{=BL=Yf{wOH z9{Oi-DPPaAn$^tOlHnR}`49+yT!|aj?I^;AqQPd{SO0`$Cc$XwNJi%?*z_v-YNB9X z890hNf)3dI5i_v6s~D$c2OH>B<2k)xYcFxcfPIou)>b76g+u&_+iQy-HnzezC9O0b zDJq%uU_}*GMOEo;GI)6j6G^$%U_7N+7R zzF0#vh;(f2R2B(s4RhnGrc!R2H=~$ZZm|CDH zXg!=92kS@CYc6Kt8)4kyjP9D?n-0;UnF(Q(Yr3BagvtE&RdQc;Ea57P8>KhA2C{-AwlG5nBbUL7!EBF}t;>%XK^$98Pw&KLp!Hw$ zG9_V`kpQ|Ak3t>1FQMAOa5yAUyEPP5>Hd<*TaU(bw3!&S=d~Fs_J`NGBDebZtf!l7 zX>2Qs23;LQenxZdtCd^A_LA^hLzZ7rqC}Qhd5BSn(H;TFzUCcY(^c{ zdzx+vY`DsDElajzdGDnDgLJkYd ztYOtMdtk~n%+ysCM)eKcsc&rl-e_CsguEhz9g2fes}&E`UZs)P;9e>Bj@zbo%0(jl z1XO}@Ify#^>}G$H(luKPQ{>F|rG;g;@Y3B# zVH{x`M0xt1LMDaO(zLQ=M^*!6;hOo!YXPx&Og9vwu}V0M^aHcf{=}s&&NH{nv}Q=? zWb_Ui_x74b^c@AIrFJgvu}+&Z`p(Nq9p)UwdtU1^cPM%UkU=GQ4Y6Dy5_70F|rrjg6|T+WCZiP`DE-dyf>K?NwJb%z=GZvJmLDqzEqs+ z$&SZQy9U?!&4)l^wdA_&q<0%=*Wz!(_kJw>JVbTFAzB90Lk+3z>#^~ zo)lT1Bu>?c<1=FGfF%yl2_8xzh+>(H!>!1TUp_8(RC+GE)!-%PMyJ7j+wCv#`*ATd z9f$^Fs?Sho2a(ltMdi|*?6lBfE4C+T?rgdP=#xBP4)2_d7&lA!DaxjMHrV`4YasCM zqzlIIrSr^)4JYez9tr5q!oqP$5Z6kWi%LxuSJLU**v8?$+Sq5ov^z2`4kp4=6G#-F zgxNii2Yuu5qn!)ugdU~?S{-N(3QM%bR5W^|8go~xSm8L9akkdSg$nK9NeBg6!H@>Q zv6&W6)M}MQvNh{Q9pzFj%n_SVkPC=4zrpRyb+&Ce@>x3?gLezp43?eMlgOicQ+j8- zIF0e*eYCb~ZHG2>Y_657qk;tHQ>7EQ4{0oes zwH@IU%fl{M=?iQycB)Gdy8r4N)@(#HXGJmAn3(owr}#MTI4Ew+-P{u84#x42T{~Lj za~XkD^3S*W@KvUy->-bQQ)A_gmr&Ssj6zo@+cL5wSAi?trT|g(6UE6AwjuHlejFg% zz^X;H_cSV}Ig7zk^%|M%!%$_*j!scwFxV-SSF%*_S=rM+#t`___|ylZB|cF?l}t7P zOWj&8?L)a1Q`EXPD)n4MfpAVHq-af*!}}AW*f<6DI@K$d@F8FeMvR?5!HrMrFNr(o zjE<9@vNa9CD$S-maJ98$F0h5f2)qw@Jj{9@3J)4Zc=rP(3-J(URUMY2L}O>6VD zT3_T7>$&sIJU;y0hnw$oQSzOs-J?^DO-owhi7w@3$6T_bk#u+gil~IoqzX{6Md8tbO(!rR5g5j@y6!*qbole!<@W4qY=?g09RA2oQzuApKKfR= z?>%H`^BtAYAX(r?NI2^AeV^&t@Y2$cxHFRXaGw2kJ~pKBfQMce-=*oY5)rGR)7eoP zs@=p5uE9K3^yvJmCFDvfN$M7fvM|Ny_5j<+u!*o|y`ZgDBK&3WF2IDXNFp;PLzcBR z^JS@=w2b%Ll`LYaagQR3i? z_R`$V&!<3L6QM*BPs2@SY32M$*H(^)lyrn_K{pbJJDkt{j3!JEc@>U{WX% zvhG62O@zy=UQD)r*cAZ_M?RN=#9+7n3B=wI@d4@U!)cDo_uYI1%ik_|kXM^7;9x09 z-e{nN>2Bz8zxP9BybyM`zl(|+M?P;s`3^A*JEuW^;#A{R)^~OqqzfS`sytYamU_|u z`JOXN|DmLVzvX>onSE6X?m}%ODQBTRPqNR#E^uP<$~dk=@(0|W6A2H)_y+N{Mw zOzEC+vei2|(DpB2Tmw{H1urdIxmpf=_xBG1hQ+}a$Vk{g-UX3PE?&>oZ+EpQkE2@3 zg*@K}TAtp&d64El^lp;&)cgYN-A`^y)9I*Ymhd^sMpohjL#MC)jj-E2Ko4?h34A;Z zm;W|8zuEE(;`-cCuZ)`k*@H^x5Ur3q0luX77R7e!8Z)rM_D192XBf}EZTxgf+_%TW zb{qR0u9fuS)$cC#lyXfZ$S4Uriri&!fFMT^Lg7c?=4- z9#_#%u@x(PgeUUeG;jmdl(O1CB!U@~+@`;Oekb;IY0qj$6g)78A)0C`@53In7b|=` z)Xi)_nIkvxM|;ghF@#faDlJ%_ikdPvbBX3Qi~jD3hvJJMC1ihwlWo->Y_U}lC)+R` zr$JtABd#~x{AGgP_=*il*xh$Zy^;2bi=P5pP-;ZaAd#Xk+9wP+S7DI+|_T zdi!?rrVx24x4|4Zsl|BgyLqYztxk^?+X?c`!oUV{Q?c zeh1Z?Y^>k?c_W?IcKv)h2CTW#Ky4Zw`%8n2VDCZ-^w6g1z)p_gw0*8`Vyg2u@77?L zy+xu?S6y71<37N|KmhP__=Fa!#$>sv)EDFEH)Sw*eUF`S2D=5AxXw8)prxZ~|MT`% zGN7j`9vDBj-{d>@&5&|WrM2~us>sjjg=9)?K3r*l0GR^y{o(#wMUX?a64f4B|M9cL2q~rSBFr63MjN4>i3-gxRkACOFWG zx?@1M$G+yHr#TpCK_cL!JCU(9{7aux8Q7vfJmHf;n&1T12N4FDbKu_;9esU@#6cWH zP<27D0YlFZ>$`ZGmDX?2AbP*v$Ot7V@uV}?y)E`*v3q3)s@;zsb zQ2PnfeG%!4S|Bo`J9f*U^$%P<`)yjT;&VWq%3(02NPLkRYQf&Mg^`UX*wHhJ3JWRV zH7P4#hml8op<%R|eUljDQ*nv<&R!EHUq@9j@wbrW%NMI{ER zFLKr$5{*o6wXbQtP6fR)0Kx~_WDl+HE_kx%bg8|absm3Sfj+e~06iCO8olS*|H+8@ z=xrld=azAhRo;-HeqK*b>mg%XaQDJo)nf0-F>EU1h)jDOJkYPk1bElU^qg*UPF*A? zGpUiolDOi#bT2AzGmD1(wL{OsY!$dMdukl zIt72ihCEVUymUVpRz3ctek0oTbVLiSQ%6>zL^s&c%I;?7S!j1;^*)Hhw_cVxchVZ6 z(3rkR2WP5fM;6>NCupB}W=LBS+HSl`t0zoM)`)df}!&xxP1lINx@Q3DEKg*iv-o+-GQd zbGIU_?%(s}D|UA|;-FRAAw$bG!(xN#q>P^lQFoK={`UdZHqMq0;(WMzg;`*52w2#1 z$Dd9dqQAq$FLmt@P0)X#Cf|&riA_3aI%3fL$`qEoXA(_|)QwtE(I-&sd@6(YiL$(l z9N)q4v|4r%Lf;KMm>c5@MWPw_3=oR_+bo?dUTxLId;bU&Z^jUmoM|m=t$xPRf+OBB zO07`=IsS(UTQF{mp)bNdhR%*(Bc~wgTTI=&S?C27QlZ-f_3JrSqOAiSz_O={OzB2s zLK^mmoHGzk7;+Aohe^*Hy7yXkXFi6UM)7)w0xe=UE}-XcdBE@dyaUwKv+R;Q|7#FMgIrEz+L8UoQ#z5MQpUsJD+7!4A(_DfQIKoyfj5ft2^A)vt7s z7U0XkQWtZTFAGqzT0Zn_^^rWu@a*U{4AfjfRSPV2Bo&?!IJjfferbqQ9-33Mum}+&hXYf_=f+#4&z$@$8BIle9g+2m=_`r)DhucZy78QgM;_u)mTPN1S?^_=&nxYHQde-n< z&J+Zh$D(=T+Bh1{RCJdQBLPHmtied(EGj6?Z(uhdcPN9PHiNSZfPF`t@kMR;)Pdpz zRYW-@uN^fGiT)d|t8K=TPvBSThFI>$?hkag3dLUeSb8_8mpPn62qa^gvU*9K$($#g z2Kk9swNfnsU(oKh2I>oTqU=SCy^j)r!W=4aq3Co5&|-7!yfI$F@!`1*CXKWXgE!T} zC@Z~n{JPGeq0&mkA6|@DgDXvjXisK0xzbQBTo8mas3|1A2?v4)rQ@t8Z+cid9e_hY z%9!$0O99+sIn>`rzQKfNCLUAe-l+>sZ?D9bi}?qY`&hnFqccrcETn`+B> zQ827K-1;RKxe0l>OKWp`^CEIHTLTX%>00EY3Il4x6z&3RPd2rGM9^V8R-ojZ5{Fw3 zLRc2%n9+lnLOZ%hGT&DHlY?Yz^*Fr z>%tQojq4nh?u8pBgs*REf+J2Xzl4mlSDX@|^btmIboG+Z#DpJ49v(K}IS8@&fS(^Y zChkCfe2nBjV_?maPV_}YHv0So{L z1qT37{(3s@ZtrAmWN&Z%`;BTPX}NDqz-2N=7-LuItfU5kSxEn!03;#s<_ej|DGd%c zla_+zU?c>PU1!AWiL!4!(;>d0z>oE+#BQ)HRv!;$^LY=jCTU!Yc@Vg0AJEkA&^42}bU2tL)z=WoI+UE5vPD zS<@Lz3-B({pp5ugzO6J3^{w+c^xO8=k@XpqTJ$>oI1Pp6d~fxEp-GoiX{fDWvhK3O zgp|)-l~jt$_bep5VL_)PtZd~do=NkXuFQ$>Wuab*p*1e17el15cKzs9jeIC^GfD`` z*@2mugk;BO?)ekL?5FRFs=sK4+W~#r+q_%(eRw+gOlGNsY#Hc*n4@XRZp-V?Z^It?~8>(O*81_Qyn&vFj5 zuH=rIFi^De)x0N&YN8eQy&*OXOol7z;G~VKmrh(gWrc?MlYAlmckUqctF!c-Ol_S1 zaHtoDTkFf~Z)>j(edQSaqYlHbniUD-QawzleP;n@sJrd5?igqbE{vqdvL-$sQe|Ey zDBdJ!p0u|KD$>m~!^EcD?`Eudo3!Aq5bM1yifIjSRSXcYA8>0|Joom{SP76QZ<~d9 zuj0@R*>ZSc^bi!d%agRo0E*Z3R+?ZA<)%)woIFrb5Xk0c6D{WCHzo^YZ?jXd8@dqd z%O+Hi<>_6e3G-@!cH{_dy|=e7JsMl*P0JS^XQACziO+JiiNlBr^v<8}K)n`)hUOf1 za^)L7bC(J&uP~!W64eP#RgPHR(dlrcOY7H>BZ?r;8NC;np5E*3il5Z38?WNbR-6;Ob#l(HRzwRFWRqfwr$?x86 zOOUk=VnPi$3w{n|y2Y(0N~&>WEUcPydw>Xt5mS3JD8v7FOTbf(f$0^m2Y!b5evOi4 z;iTh1&c~>L-2*~1AwWn!r1U!4|8{G5l#I&gHMuHOEVLMC9&1j$Mg5p=nB3_^KuU)P z$6@4K;&&CUV|sE!0mdw@p4FOx`TeeB%B7sK=_|qhH9`eCp4nVxRFqlX&s!W47i+7z zl}qT^!uON;dkARhnb8_;j!Ap**h}-ocp6D>NT7XicI}k03AxjDW!@gt-!0K^X}SeD z{{&sTm{}vSCR7;$8Xw~^+$$CbGmXWARw@4aR81^o9s4PCcnh<2~R&8x$%pjyc_M`p6P#1So2d z)0mT(TMMuguB;*!Tce~Z)c0n7eEU;;OflI2(rhfSFs&Pkj1=ixlo!dK5w!Qj(Tekd z4J6*QhIQ5CISzdFXQPXnyfr*ZFdCD=X*0vop|tb%DJ7BDa~;(P6sG7&@`ucjk{7oK z77QM#azEV@RaJNuTLh@Z$%us6cgG=BW@bX}#V6(-*A1a%R8rMJPHA9A5C=A!LeX4< z;7F|QuDuiJbwAvk>x#L$T5p2qvz(;CAPtM{3f+}%YD54I$)LI7=hI^NJ}78_izu6V zEw!>@pLPYQ5I2A}kwcg)w!%Pfhg88;Ey*Sye;<%-<7k>Yl^zyIDyyIG4o&eu_B{u%-QS@|!0l>ZJhba41JApbx8h5cK+`m>#X2DV>{{xUTF-(mkF%>60n&+YZU`u{#c{v_A`tr1TD-(Y`J?f*3S&sEdk0vv;X z3;6eL`@f8SW%vK1{PM8KUmpGicD67zb@`uTn<|Lw#6cJU5F7{loeAd`_%E+H{15DJ v5x?IQ_|yD9^XdF81ykZ*=KsTj-?!h{brhtbeouLH06IYSRhw?)FWi3t65&~a literal 47094 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 Date: Wed, 23 Mar 2022 19:11:07 +0100 Subject: [PATCH 12/43] need to remove duplicated emails --- contact.xlsx | Bin 36800 -> 41495 bytes export_valid_profiles.py | 17 ++++++++++------- logs/AppLogging.py | 2 +- main.py | 11 +++++------ wait_for_sms.py | 24 ++++++------------------ 5 files changed, 22 insertions(+), 32 deletions(-) diff --git a/contact.xlsx b/contact.xlsx index 580e54896e75d0cd88ffe27ac784dd5f19015f6f..4da63ac8443f3b53dc88c4c477b990368fc717ea 100644 GIT binary patch literal 41495 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�ubkKohv#^P~&1lSCn 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 diff --git a/export_valid_profiles.py b/export_valid_profiles.py index 36fe297..b1d622a 100644 --- a/export_valid_profiles.py +++ b/export_valid_profiles.py @@ -6,15 +6,15 @@ import xlsxwriter import params from pojo.ReserveResultPojo import ReserveResultPojo from pojo.contact_pojo import ContactPojo -from utils.excel_reader import ExcelHelper -def get_random_id_number ()-> str: + +def get_random_id_number() -> str: # write_the_valid_profiles_to_excel() S = 8 # number of characters in the string. # call random.choices() string module to find the string in Uppercase + numeric data. - ran = ''.join(random.choices(string.digits, k = S)) - id_number = "57"+str(ran) - print("The randomly generated string is : 94" + str(ran)) # print the random data + ran = ''.join(random.choices(string.digits, k=S)) + id_number = "57" + str(ran) + print("The randomly generated string is : 94" + str(ran)) # print the random data return id_number @@ -36,6 +36,10 @@ def write_the_valid_profiles_to_excel(): contact = ContactPojo(reserve_pojo.phone, passport_number=get_random_id_number(), last_name=reserve_pojo.lastName, first_name=reserve_pojo.firstName, ccid="", mail=reserve_pojo.email, position=0) + seed = 8 # number of characters in the string. + # call random.choices() string module to find the string in Uppercase + numeric data. + ran = ''.join(random.choices(string.digits, k=seed)) + contact.mail = "{}_{}{}@163.com".format(contact.first_name, contact.last_name, ran) # contact.passport = get_random_id_number() # if contact.passport == None or len(contact.passport) == 0: # old_contact = [item for item in exist_contacts if item.mail == contact.mail] @@ -67,7 +71,6 @@ def write_the_valid_profiles_to_excel(): workbook.close() - if __name__ == '__main__': # get_random_id_number() - write_the_valid_profiles_to_excel() \ No newline at end of file + write_the_valid_profiles_to_excel() diff --git a/logs/AppLogging.py b/logs/AppLogging.py index a9f9f49..ac9be75 100644 --- a/logs/AppLogging.py +++ b/logs/AppLogging.py @@ -8,4 +8,4 @@ def init_logger(): filemode='a', format='%(asctime)s,%(msecs)d %(name)s %(levelname)s %(message)s', datefmt='%D:%H:%M:%S', - level=logging.INFO) + level=logging.DEBUG) diff --git a/main.py b/main.py index e609f7d..dc29cab 100644 --- a/main.py +++ b/main.py @@ -20,7 +20,7 @@ from pojo.serial_modem import SerialModem from utils.excel_reader import ExcelHelper from utils.message_receiver import MessageReceiver -OTP_TIMEOUT = 120 +OTP_TIMEOUT = 180 is_finished = False commandor = CommandorPage() thread_event = None @@ -69,7 +69,7 @@ def timeout_occurred(serial_modem: SerialModem): def start_to_handle_sms(serial_modem: SerialModem): global current_gsm_modem current_gsm_modem = serial_modem.modem - current_gsm_modem.deleteMultipleStoredSms(memory="SM") + # current_gsm_modem.deleteMultipleStoredSms(memory="SM") serial_modem.modem.smsReceivedCallback = handle_sms global is_finished is_finished = False @@ -164,14 +164,13 @@ def on_ready_for_otp(e: Event, commandor: CommandorPage): def start_book(): slot_number = 1 slot_sum = 2 - for i in reversed(range(slot_number, slot_sum + 1)): + for i in range(slot_number, slot_sum + 1): card_pool.reset() logger.info("will switch to " + str(i)) card_pool.switch_to_slot(i) modem_pool = ModemPool(get_devices_ports()) modem_pool.reset_all_modems() modem_list = init_modems() - # create listeners for chaque modem # read the contact, and contact the 2 objects together excel_reader = ExcelHelper() contacts = excel_reader.read_contacts() @@ -183,7 +182,7 @@ def start_book(): # get contact for current modem modem.get_ccid() # find the contact with ccid - contact = [contact for contact in contacts if contact.ccid == modem.ccid] + contact = [contact for contact in contacts if contact.ccid.replace("F", "") == modem.ccid] if len(contact) > 0: modem.phone_number = contact[0].phone modem.contact = contact[0] @@ -215,5 +214,5 @@ if __name__ == '__main__': logger = logging.getLogger() logger.addHandler(logging.StreamHandler(stream=sys.stdout)) start_listen() - start_book() + # start_book() # card_pool.switch_to_slot(12) diff --git a/wait_for_sms.py b/wait_for_sms.py index 82a22a3..b5d4afe 100644 --- a/wait_for_sms.py +++ b/wait_for_sms.py @@ -50,7 +50,7 @@ def timeout_occurred(serial_modem: SerialModem): def start_to_handle_sms(serial_modem: SerialModem): global current_gsm_modem current_gsm_modem = serial_modem.modem - current_gsm_modem.deleteMultipleStoredSms(memory="SM") + # current_gsm_modem.deleteMultipleStoredSms(memory="MT") serial_modem.modem.smsReceivedCallback = handle_sms global is_finished is_finished = False @@ -85,26 +85,10 @@ def init_modems() -> list: modems.append(serial_modem) return modems - -def on_message_received(ch, method, properties, body): - print(str(body)) - print(" [x] Received {} {}".format(body, datetime.datetime.now())) - # parse the received message - result = ReserveResultPojo.from_json(body) - result.sim_position = current_sim_position - result.slot_position = current_card_pool_slot - logger.info(result) - firebase_store_manager.save(result) - oracle_log_sender.send_appoint_result(result) - # set the flag to True - global is_finished - is_finished = True - - def start_book(): slot_number = 1 slot_sum = 2 - for i in reversed(range(slot_number, slot_sum + 1)): + for i in range(slot_number, slot_sum + 1): card_pool.reset() logger.info("will switch to " + str(i)) card_pool.switch_to_slot(i) @@ -122,6 +106,10 @@ def start_book(): try: # get contact for current modem modem.get_ccid() + contact = [contact for contact in contacts if contact.ccid.replace("F","") == modem.ccid.replace("F","")] + if len(contact) > 0: + modem.phone_number = contact[0].phone + modem.contact = contact[0] start_to_handle_sms(modem) except Exception as error: print(error) From 5e006057b4464baf23debc6cf7193e738493ae19 Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Wed, 23 Mar 2022 19:14:27 +0100 Subject: [PATCH 13/43] update emails --- contact.xlsx | Bin 41495 -> 42414 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/contact.xlsx b/contact.xlsx index 4da63ac8443f3b53dc88c4c477b990368fc717ea..e4ed095e1cfb410f940cb29d5e2d62fcf27f33b9 100644 GIT binary patch literal 42414 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 RxD*1FaSwpD?N|WP2LNN7fpq`? literal 41495 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�ubkKohv#^P~&1lSCn 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 tARCY}6UhK*djVZHYH^IL+jI_+Zdl Date: Thu, 24 Mar 2022 00:45:49 +0100 Subject: [PATCH 14/43] local changes on the commandor_page.py --- commandor_page.py | 8 ++++---- main.py | 5 ++--- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/commandor_page.py b/commandor_page.py index a1537de..809f51f 100644 --- a/commandor_page.py +++ b/commandor_page.py @@ -54,7 +54,7 @@ class CommandorPage: self._setName(contact.last_name, contact.first_name) self._set_email(contact.mail) self.setIdNumber(contact.passport) - self.checkCgu() + self._checkCgu() # wait for sms_code field self.clickOnValidBtn() # self.page.goto("file:///Users/lpan/Downloads/input_otp.html") @@ -62,7 +62,7 @@ class CommandorPage: otp_input.wait_for(state='visible') on_ready_for_otp(e, self) event_is_set = e.wait() - logging.debug('event set: %s', event_is_set) + logging.info('event set: %s', event_is_set) self.fill_otp(self.otp_value) self.clickOnValidBtn() otp_sent = self.page.locator(MESSAGE_FIELD_CLASS) @@ -114,7 +114,7 @@ class CommandorPage: def setIdNumber(self, id): self.page.evaluate(""" (id) => document.getElementById("passport_id").value = id""", id) - def checkCgu(self): + def _checkCgu(self): self.page.evaluate("""document.getElementById("cgu").checked = true; document.getElementById("processing").checked = true""") @@ -128,7 +128,7 @@ class CommandorPage: self.page.fill(OTP_FIELD_ID, otp) def reset_air_plan_mode(self): - print("will close ") + print("will close browser") self.browser.close() def publish_message_to_queue(self, contact: ContactPojo, message: str, url: str): diff --git a/main.py b/main.py index dc29cab..a4389f9 100644 --- a/main.py +++ b/main.py @@ -195,7 +195,7 @@ def start_book(): signal = modem.modem.signalStrength logger.info("信号强度: " + str(signal)) PROXY_USERNAME = "panleicim-cc-fr-sid-" + get_random_id_number_for_proxy() - print("proxy_username is " + PROXY_USERNAME) + logger.info("proxy_username is " + PROXY_USERNAME) proxy = { "server": params.PROXY_SERVER, "username": PROXY_USERNAME, @@ -214,5 +214,4 @@ if __name__ == '__main__': logger = logging.getLogger() logger.addHandler(logging.StreamHandler(stream=sys.stdout)) start_listen() - # start_book() - # card_pool.switch_to_slot(12) + start_book() From aed140f23288e26a92e435edb55c47c8bd168747 Mon Sep 17 00:00:00 2001 From: Lei PAN Date: Thu, 24 Mar 2022 08:58:02 +0100 Subject: [PATCH 15/43] wait 40s for sms --- contact.xlsx | Bin 42414 -> 41078 bytes logs/AppLogging.py | 2 +- logs/LogSender.py | 7 +++++++ main.py | 8 ++++---- reset_all_sim_card.py | 4 ++-- wait_for_sms.py | 24 +++++++++++------------- 6 files changed, 25 insertions(+), 20 deletions(-) diff --git a/contact.xlsx b/contact.xlsx index e4ed095e1cfb410f940cb29d5e2d62fcf27f33b9..5e2d70a52e7808d79ce944e3cc9bd56a552c170e 100644 GIT binary patch literal 41078 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

0f%> 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 GK|BC6wP`m1 literal 42414 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 RxD*1FaSwpD?N|WP2LNN7fpq`? diff --git a/logs/AppLogging.py b/logs/AppLogging.py index ac9be75..a9f9f49 100644 --- a/logs/AppLogging.py +++ b/logs/AppLogging.py @@ -8,4 +8,4 @@ def init_logger(): filemode='a', format='%(asctime)s,%(msecs)d %(name)s %(levelname)s %(message)s', datefmt='%D:%H:%M:%S', - level=logging.DEBUG) + level=logging.INFO) diff --git a/logs/LogSender.py b/logs/LogSender.py index 660343a..7b3b1bd 100644 --- a/logs/LogSender.py +++ b/logs/LogSender.py @@ -11,6 +11,8 @@ from pojo import ReserveResultPojo from pojo.ReserveResultPojo import PublishType # Log subjects +from pojo.serial_modem import SerialModem + LOG_SUBJECT_EVENT = "EVENT" LOG_SUBJECT_SMS = "SMS" SUBJECT_SIM_INFO = "sim_card" @@ -63,6 +65,11 @@ class LogSender: msg = "phone:{}, sms:{}".format(phone, sms_text) self.send_log(msg=msg, subject=LOG_SUBJECT_SMS, type=TYPE_SMS_RECEIVED) + def send_timeout_log(self,serial_modem: SerialModem): + msg = "phone:{}, ccid:{}".format(serial_modem.phone_number, serial_modem.ccid) + self.send_log(msg, type=LOG_APPOINTMENT_TIMEOUT) + + if __name__ == '__main__': init_logger() logger = logging.getLogger() diff --git a/main.py b/main.py index dc29cab..261a6ed 100644 --- a/main.py +++ b/main.py @@ -60,7 +60,7 @@ def create_modem_for_port(port: str) -> Union[SerialModem, None]: def timeout_occurred(serial_modem: SerialModem): firebase_store_manager.save_timeout_contact(serial_modem.contact) - oracle_log_sender.send_log(str(serial_modem.phone_number), type=LOG_APPOINTMENT_TIMEOUT) + oracle_log_sender.send_timeout_log(serial_modem) logger.info("will close timeout modem") serial_modem.modem.close() commandor.reset_air_plan_mode() @@ -162,8 +162,8 @@ def on_ready_for_otp(e: Event, commandor: CommandorPage): def start_book(): - slot_number = 1 - slot_sum = 2 + slot_number = 3 + slot_sum = 8 for i in range(slot_number, slot_sum + 1): card_pool.reset() logger.info("will switch to " + str(i)) @@ -214,5 +214,5 @@ if __name__ == '__main__': logger = logging.getLogger() logger.addHandler(logging.StreamHandler(stream=sys.stdout)) start_listen() - # start_book() + start_book() # card_pool.switch_to_slot(12) diff --git a/reset_all_sim_card.py b/reset_all_sim_card.py index 274703d..f56462f 100644 --- a/reset_all_sim_card.py +++ b/reset_all_sim_card.py @@ -9,8 +9,8 @@ from main import card_pool, get_devices_ports def read_all_the_phone_number(): params.oracle_log_sender.send_log(msg="SIM卡自检开始", subject=LOG_SUBJECT_EVENT, type=TYPE_EVENT_RESET_ALL_SIM_CARDS) - slot_number = 1 - slot_sum = 2 + slot_number = 16 + slot_sum = 27 # card_pool.switch_to_slot(29) params.firebase_store_manager.clear_all_sim_info() for i in range(slot_number, slot_sum + 1): diff --git a/wait_for_sms.py b/wait_for_sms.py index b5d4afe..188d667 100644 --- a/wait_for_sms.py +++ b/wait_for_sms.py @@ -1,4 +1,3 @@ -import datetime import logging import sys import time @@ -11,13 +10,11 @@ from commandor_page import CommandorPage from logs.AppLogging import init_logger from modems.ModemPool import ModemPool from modems.card_pool import CardPool -from params import MODEM_POOL_PORTS, CARD_POOL_PORT, firebase_store_manager, oracle_log_sender -from pojo.ReserveResultPojo import ReserveResultPojo +from params import MODEM_POOL_PORTS, CARD_POOL_PORT from pojo.serial_modem import SerialModem from utils.excel_reader import ExcelHelper -OTP_TIMEOUT = 120 -is_finished = False +OTP_TIMEOUT = 40 commandor = CommandorPage() thread_event = None current_gsm_modem = None @@ -30,6 +27,7 @@ current_sim_position = 1 def get_devices_ports() -> list: return MODEM_POOL_PORTS + def create_modem_for_port(port: str) -> Union[SerialModem, None]: logger.info('Initializing modem... for ' + port) serial_modem = None @@ -50,14 +48,14 @@ def timeout_occurred(serial_modem: SerialModem): def start_to_handle_sms(serial_modem: SerialModem): global current_gsm_modem current_gsm_modem = serial_modem.modem - # current_gsm_modem.deleteMultipleStoredSms(memory="MT") + if "893313" in serial_modem.ccid: + # lycamobile + current_gsm_modem.deleteMultipleStoredSms(memory="SM") serial_modem.modem.smsReceivedCallback = handle_sms - global is_finished - is_finished = False serial_modem.modem.smsTextMode = False logger.info('Waiting for SMS message, for phone number ' + str(serial_modem.phone_number)) listen_at = time.time() - while not is_finished: + while True: time.sleep(2) # check whether timeout now = time.time() @@ -67,7 +65,6 @@ def start_to_handle_sms(serial_modem: SerialModem): timeout_occurred(serial_modem) current_gsm_modem.close() return - return def handle_sms(sms): @@ -85,9 +82,10 @@ def init_modems() -> list: modems.append(serial_modem) return modems + def start_book(): slot_number = 1 - slot_sum = 2 + slot_sum = 27 for i in range(slot_number, slot_sum + 1): card_pool.reset() logger.info("will switch to " + str(i)) @@ -106,7 +104,8 @@ def start_book(): try: # get contact for current modem modem.get_ccid() - contact = [contact for contact in contacts if contact.ccid.replace("F","") == modem.ccid.replace("F","")] + contact = [contact for contact in contacts if + contact.ccid.replace("F", "") == modem.ccid.replace("F", "")] if len(contact) > 0: modem.phone_number = contact[0].phone modem.contact = contact[0] @@ -121,4 +120,3 @@ if __name__ == '__main__': logger = logging.getLogger() logger.addHandler(logging.StreamHandler(stream=sys.stdout)) start_book() - # card_pool.switch_to_slot(12) From 25207bb0624b5828877fdf0e5b9e7cd050573302 Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Thu, 24 Mar 2022 09:57:36 +0100 Subject: [PATCH 16/43] update contact list --- contact.xlsx | Bin 41078 -> 48612 bytes export_valid_profiles.py | 2 -- main.py | 5 ++++- utils/operator.py | 15 +++++++++++++++ utils/utils.py | 0 wait_for_sms.py | 5 +++-- 6 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 utils/operator.py create mode 100644 utils/utils.py diff --git a/contact.xlsx b/contact.xlsx index 5e2d70a52e7808d79ce944e3cc9bd56a552c170e..04e9129d0591069cdc7587d42f32eaf2b922ff88 100644 GIT binary patch literal 48612 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

#!vu$kBFFPc~)49us)gxhwCKZRuV9n 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 literal 41078 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

0f%> zGuxT_SX~Qrhy3^FjjVV!RQnXaeSAM&`~GK*ss9k$UAudWv?EnJO_gzwKxCUPVi9)BNoG#ivndu*v>ju2VJVkL>RrcP?z)4hv>;7Xt6y zXMa%lbdS5U1na@ud&OuduNKV;MQu&;bM#&hyS+KA>n4sV+K4Pu=J&pj_Xh`wJ5qJm z_kHc+_gmjvyQR;beE7VpSosqtJ;8g-g(Ikjsza89?3gN^<3o5+^%EAg;Qe_M$9I#1 zV{v01m*g+2vLq@r-OwgG0=vIwp9)-R*)!&+O0S>l1@^49wWpC|?7}DbC@R+^tDhoo zoyC=


}3)E~UV$;wM~SSWj8dW7dabOd&3%iYw>4&dpG1reSxMr(M{xI`;}oE>uoPB_^VJ z6?3<($&aQyEc2Ae{`Q0D` zwfXKldGEgCmmdo{-t-^t5p0GkRo-l+gV4I$P}$3T20=@LfT9XhM(#(oN-)|w^tBj! zA=aATZ#?(g9S@1gfE*jpZ(*C%>P$8uMjicZQ4)ZD2nDp*PvOEOga(^R=f5-*!;hg^mYqMTTd?55;D*K%TZrCJ6!j%~NnwS*7JEUop^` z@BeWxaYg{6_;Q}BvfrLThklhyR;AYj%-;%`Q}fKSTXh6;r>9j6GhKnx5S@s64*|dw z+}vcxZpIAUNhctybN_peJ3bP#L2+t)Q|F^N8`Qk#tOlE?X^Giiw0;T)ZM+LU3yB4% zp*)KB^M5D#xqU3rm;GJ(1nJ@~ei6~eDviUy~VI~jc)kZbL7iDpvy zC$3Np|83$8P>p}`4=`w~q982bfH9K-!ER8|`S>~J4+Db)Ba?F_346d(Km|mkmh1@# zG6kZj6=Q28@1Q!5CI#UZokg>9^!|%6VCE|+QvznVax7f2FPP^xv?UP7nRo|Dz%+nt z>gSY?Z2;lETR0*O!JYdb8bGd}Eg5v2hg(q*>h@~_s-V!A8Uf`!KHpjEbKcD`Xmnao zyT$UrBaLY_67&s>YEu0U0aSv~lrmn?lWY%Da}hA`YJmwjdvN_6Yg}YR3+RD%S8Zjy zLVKN>|A=}7p?gx_G|#x2RX06<$+roN2}rZ|Vu7Oehn&@AgQNTuT;zGq-|qA$R)46M zs$oqiGMcOwIdt2%K#vCOL}D6v$&q+F{;HfW{|Um@h`BMBNpwX|2Mj;?**@xWwF?xE zpIb_$35O8x9E50PJy_8j{V4(5R___dE9(^{x!=tP;<)hdIwRN!bOWnq{$rVF*Lrjl zTT*8~28s7#m5;r%=d11=Is(=POd#^Jz{Dwpsc{I=xcO(%xc5cD|qf1=E;rmHNq z)XL=m9RcNE^=iPX%*-@zUSZUeZDVl#z531T+pT7~gnAg700yPt8s4Sw_Spm0t6oK_ z45FZmRkK;U)efLCQ0ON-*f46|-Nhes?LAN2%NyW*guwdcy=1Nrthj>&u$M}cJ59$B zKqC7-K4{9)Iq|K)?uBY-L!5136zQFKkng`#v`X;vTIt=f*Uql%^6La=E+I34Sq*SU zSd3MDZ`3QlLqGo~UVy6F?)=*y{-!3{-L6r`;3E&tUN#-#F}j3~wHC}(m>S{drpcm{s7R~5}#e6bd^Q{lLq0{Vi=;zyRC zS)AgrJ>mk1E7o5^D3#r4L~mGJBBk8`r`C#D+X%g#5RvC&l&<|xKO&v?eqtbTQ*w4i zgLO(_R)Z<28bysC!ZL}VoJY3t>^3EJxNSvv3PnwWBOuQV*fQk69*y#~74A2p=0*m+$Lp+ne7MUA0B(~g&YK7Q`EK~SX)cApmL?UX;&J7Q?eP;%6)BBGE z`oj{EQQ=x^zYe)NmI}Qkd=LSFky;{^A~36SH4TPa81WgHz!}sIU7F#LdlYLmm~8r&6PGbC z0gDFwg5I+4ZNVb&eu0MbXa}x!!*(!(I0*uCd0LwEd(QxLeN%{S|Ei|cL{N*rO1vCf zDreaDgLtDTqoCc>n2N^jQzsk-GGIp}@OP&8s~)Umxng$gcM>AZyjOo=pgJ0KH2|Rr z#}H>OPj=W;U@E*OAOEv0C{K9`*t*Q^2vaNgO80m72y9M_{LD>EoffhV>~WpSrs} zVyy}64L#hWZEa4RHEch4cyzY60q=DO$=@g5FD7nZ{Pc$MZn-@sC4Xyqa^-&U;(vU8 z`=9sx8PzJNt06%^3`zg%J%6S@+q$KwJLia^1gsmEJs{Aose`h7R~~`&mE=^`N3wTK z76L&gBZt?Ke0@ptMUhocp}!VvcxmJ)JenyeqU3no*57SdTcyABy-|@{s-Cf%ciM0{ zPONfpHh;wsEhDd=i`a!Ucc%7iioWi@_}z|s>U&P(=C}$F`aCzO;ugL=S~MMUqU>xa zbgHvmewb>ASpF;N6}!zLN9sUL+HP{_cTu&+gsSSAnmF;#E=~sD-KiQ);>rdpXWT-5 zf%yhKGwhqo%ZFd`^8;%{99k2$t$ZBHBN>&(HM+2I~}c z|ArOv^%U&1H|-Mg7;u2Uv?UYl^cxZt^385yl=Pa85!J-pi-R~_6L3JvP)GdF?Dw{w5KX_#;HC}mfri6R!nAj7%k zu;cmA=of_390UEThePLCjB=kbV944{O-YiDC6N>{LW4HSxWxE7Wuc@$rxCJ?*!XN9 zb)x!W`kI5=gR?Rwx7?a?e<(GEU43R5$g0s^oclsMMDh8BQ6U=<80m`H{I*%r0-m-rnuFAFVrDQ8O$jh8+@%BvNfne(f?7{#K_8Tt|Aou;<}ZySr>ONo z`qJn-vP*DmN>QvQMt$KiEy{@jt-bNo6}rkON9Dk!)hvBo0e-w1}IfWqtY! zb}4P*1{D-ZH{h12Ku>oiG;E@9_s9>8+D#abU{oAqiZ7Akv>^9bs*f-GizYBfGa zFeaDOf^VhEa19^97plutb!*b^y))gNwi7Pfq*+-Kt@)*>V3aK2^MZax{PDc zblGPI3=8(}0LtI=UtEccx^*P~u;Bg9LfD`J3#TO26_B2U^8tO5l|W%TdzEbrn=dCU zD>G2461;n3wek-QNs@|_o7W^9U(@RR>b9%8jfZ6-qx3n$_aVnmUi0kdc0G=p%kJ$3 z+j-fS!+$R-ozPNyOSB8srbUu+4HPumA-nO57VgxFZGPz_t)kFU6mRts#|q}&JwHBq zcr!ML6&sa?!8DETFzTIJ^OzR9Mdpu<8*HloE^IWMf*BAk>FsJVCDQ68T=grwbjT_@ z#S?{*tlg8jgz~A;c!ApZitC&FPPDMIN^Ci$U*GI3O8k^lYQCivvDBgbl7Z%TV=N>H z)(713$qs2Z;-!bVUzIl9MWd_VxN<))V=;@BGH1S-P)M7aBmA0BR}*JW2Q#Jk_I?yq z-xzkY7A#F~rldk2yX4VS2zMr0!CNVyRw6qMbIe@n_Tqy&&Du~U4OTjjuR>^P&oz0` z5quh%3QO~qEoCn0HaD*Rc9hs5fz~{uUdGgXom*f@T(EVDi0-=e2D=q1%2RsXQiu0v zAaUfJ+ontq5vNw|1&!LNP%U@m>g^PQlNCAs>*1nTrQ-q>W-Scd2i{v&{SYnYi)|f+ z?0hvHVYLQhOw$hojOB-Lq4jT=Qvx%Itwa9p2?;y7hV}`OPHn1f#%{#jmLgo{#HI0z zUZm86LjCosv`aoljjxO4CQx4f%Z?;L@q@s93kvf z+mj!SwS5F9zmD72t44d_4NP;T%`!I5AMUx(z55&69%7M?*~(RvCgM-EIO+pTRe)Ql zD&3CbcNR8UGDMj8i}GI#dG(F7sd_)#geP$Ka@6a5HI%5WmLD75HR%zcCw5YdOX_L> z6xsD`)`<&$56I}SmKN6UzYyUVDzf|@=eMjG%3yrkWa}=|!L}=jAs~0^FTc_+99hm+ zNx5h(YWN~-V90f8962{nT>A^u|IXIuc@}_$_%&kuAr_?T2|(rrW_O-lp-q7+cfbk-LEhE%V)wKJAVgV08R2 zzwgfF->jN1;99`*Npd5<)*id98Oi6Wi)uuT?{DJ5l&m{NED+I>^UjKJxRIBDfP4@| z953q4l)%YFbi1k_Li}toft0K3J`i})(P5Kje9e101^oJ^na^;c5%Z>jeN4b&SO$}j z>s9g`oea$Q<6sWR&#heUe!y2nLzqZMF<1>b!p6Q5m{+RpLs}tHlF@iBl3z~g^rh4o zIMSwg*EFo8LC@x&i|tREwg^gFn0mOHx9gn9QIt)*m9Pmx%iJkILr|gvf2cfRAuSn^ zg$#m(sOobI3JBklQKNxT?{#^~Q&ObKHnF1em6gHZeE9^OeOFKkj;2ce4O}EgTAVla zD0GW?+*nn%C`sdmtHhZBDxj$_& zSSVA!E13$+-Kl*-rEpUuNCs^{5^cfgl8%b9G-br;|w zCD^olU2?rE@yYsr%*s>*-RFskmZGUXx;P2$61XH0=wI;YwS7x&efkq)1^y?xl$VP0 zN}Wz>T0s)>nKmZ@gSe$^w&&@BRI(hPl=Dz~@(d0%rntu}bWog!>8LKN+| zezo#@?SVX`bDiK3EVN4fIH8eyF<_a^F;PVrg0KkHb8KxZF>^w9y?xZh!p!t@z$3F= zua!+T6s_PgPRvY)z(1yLd6oS+C+N&5# zKAO$+7N5Dc zYw$sjQhM-mNyO!dTboZ)Gv@PnXCz;lbrLo6vhgRWe!n=t1N3_$B*s`4q5^!%JT_ou zp|i4$x6JhANbL8f>7}Pgg&R6lO(wZcYwesgB8N8vW?M)K?K7->5A34?h}T{4sXvIz zsS+9#!=cFi^f&Csb2$TiGC*DhCm6>T|Y>#N>%9r@ccH16K;OBUpg}l99zr1-pZ|-})UG2X;OX!#E(l_^J2oKrd z;k|r!J!qBMRmZoK!^frj;6rmM=O8G%G08u^Q!rg>ST%D^-J2z>)+`T;X}2EAk+IEB zs)$&`rZ40`jwhJxVjcRG)Yd8o*)AbiuQGevaxzf-OlxmG0OQz-X~^O8=qSLPb;Z9` zx4CZi9%eXJub;SG-646*Uykj3eoWw(M4V1+eQQ8c5jA@Ha2co6ATHG16N0I=df zC=S`OF3KPm6}i|6Q28U{)db;R@0T|E=OdYti2H2{MbefD;>;`BBwj>@3!odYI=Mr- z7^1hVL<^r+25j!419tW*T$heIBd1U6PPOLErn0RcdUd(s@jd{sEovU1SI?EK)Yfb)(@hs!SOQgdRx7g_K3XiVGuN;V*t6Fv~IR;a`Dm=E$kVB|#v34Vrr+cooTiA$TNyg`D!H(~YQJ zWEz#UHr*t9WEJbLlrTGo6JJ` z7oH>6bxV1YcROlI505U7kx*8A-nbC;8s+NjSGlP{IW3!9BpNTq=RxRch*ecBYBS{YBA4rK07QnC z`Z&fp+w`Q=@iQn1mBB(XTjtL5Q2uB@+M-itpb5TWs%QnLr^3KE*x{w70a$EQ1 zmeBnIYWT*ktHAXC3uV3=7q5OmO6(T?qyslw~w1AFAu+ zCFGg{Xi((^s(uZ7KurMP@#Y8_0MU?r zF8|}GEa}Z#Jne=Qx*5MBGm*e^$8>V-aSNUv~TdZjoP9CFk#$lz~dDMb@3Q@(}xx05>jqsbEyf zh(=yutTZJoyGUzRMZp5`ElCtqrm8LpihC9ZySns9&47@;<%3ge9i|*wXIA#}Cf_D_>0SaY^W>kOflHCAXJnGBqI)fPbY@oQEC-qij)qHvABaz*|UN zgTFUlZ~7?mHy9qbyTxBagz^D{mNkEdULX7mNU=R)diNduL zl>OOl0oVVi@k5+TRG zKn8BN1OJo%g!C7Z^tt5)G)DLVal9??PexeM^U#u4By_0wCojlCbZ@rNqiD$_-+e%x zCh0M0r%<$h+>?hW7?^;;m6Bx3V7uDuv#Zs#2T2*pb!Hjk--urs4r zZ-j@PGl~c9j*Ps> zTP4t9Kp|*jR_HDbQr+qIO2~_ZNIsFsprlq?;zQ#moghr4;I4~-k3F1Wd!2eN-N_da zl*_RGxU$9dVWSVG^e z;NrE@rwdMadpLGodR=}!rX5w;siKc~etTBDKh%D+e|vlV-9F9S+`TS*=>4i@xOk@h z_8i+p#cvZ|~=2tAN!(-fHI6UNN#)t|BOb3w%ws^B!-oeCXk= zZ_js{X%LtgM6d3hIn8}TU*4=#>dR&ngywtO&wu)DWxO>QnQ5=MP`%DLF_#r!G^v$R zz@y1JcAJK^Gn+>CdQ)z#Xzos~66heQ;fTmfNhtTWi%Vb8Ur|lUm0|{3E%+y}^lVuT z+S!_RPvJ_A6qlBidtJ+w^~gz6nOWyeT$o*PE52l!a1_s%E|mxnCVI?dUZDy^a! z=X!>;19&k|ZuT4+Mjn=$cEkBPdX;y2>j_O8hY)3d-BN@usOA0hn->jHQz9Yb z&1iXm+k2HorU#kmRrv9cAP07^@v}fT_N()gXY}k4-L*W+tip*HYR?!#=*C$uLeEvl zN!P(v-Zw%cY`O+YMrB*c4f?R{_F4B+xmW z1*c^Kn2Smtx)W>|;K1`xxB$`cldedoDBa}QDmZz0hj8vxOQ(e(Hk9dcP23alUW#29 z2F+dPik;eR_M4iYEZa0;Ka5|U2l-bW5pN{cyGzV=ichj%b3kMi;t2UxNg}F=u06|) zxRlC{gjsO0lMQke@dR2WepgiKi5-Z%f=R^O7hyTgmg%4vjK6tQks)_+Y=AfKfoLM0 zrlg@CEtZgH!aKkl?r^GfxD9IO7OSG=#kTYjjD5|;I#-~rh&}@8W<*i%ZwyAkYkeTJ zDanA|i$0np8QVF9M3M;TAfta(9=fH<5Z1??Bpn;D%nL0+dUh7mW|82+i#n|K$3)e(>;cq z=QAoZ>ascnH-H!hB&^C>^Rg*rD;4K(*p86)@g;+NUpBl$mY=rACei!hh!fs)A zH5b3NNS2^Z>ZBG-yEfrcf0t@eIb?l{Xw037=2esOsW3o9O$zX;E_Iv1@=v-%7Z@2G zOiz`-i_|v_g-%97z#dQ3tu1n?pp^XN*hbjx3DxXe{i3qryen-;*RqVMm=H+J`O!Qj0vzXqq9|mmQA@fO@ z&iI0ESE8->E$USV6*nQMOl`nb6P@lngU=>FQ(C5#No1uw#YhsWv_Kp zi3KmA`wSiQF|OU+vq0`=EK!cYwy%5pc?~whP-fvrl$e%`uyMPX0s5R&7y(%DZfYlC z9sJUvN)*#fuva^PPdMh+UlCElqxEnXUoe-)_t`eK_H|LQjnYd(Kb>R@(W1F&3o-|2 zoTR0Lt<&{c9Xv_z)Ltt+X^ z=5S1Bv_&H;iI5tilR9HE7l+l=FvGvJ?Blwi6puiz3?r_CBZaD*kJy8JUxlt10Q#I! zqy*Yd;F6MqL>L?~aIB!9niw2(!iYG>_v4pvh7_J#hFmhuL=bcETLN)yfA-tH_vafQ z-Q*M>6&|>W(bL9#B}ZqJ;16{!d@D9MpXZ3o$j7#++p<6NSh|Ei$xTTxSdNyc8eH6T ztrnnK<9z>+EDWNq(34AOO4OY&WLtMzGDx|jc`Fb_BjB;hELrU`27EFDg4W| zxjwzZt-pn4g{o3`u)q_d#*F1l{%0t&R^ zfhYr@-#epLT4zLXqaDur)dP(tJtHR>*AzVOVQ5nYK&c~k49bj~Pk3l$AM7Y8cZkF5;&Wf2^P5a;`5^Y9(m;qylLJj6s6$RedErAcOz>g*3Y+Y?B)uO~r;hQm4 zGYmgmvMla+)jNII6&qjKSb!C%G##9hMCY8XEoG2hm*0c{O=y8hB+DIFiTQ}O$mX_2 zB6X!-CkGzff^i6=n!nEjy-t^iVwY#~sb2Ib&$0y`f%+yOyLl*S`*>PWFf8xPU6}xU%mp$kc_=j%eJOY{Z}JbP0$rbOpFc8wfq)5IH(?Q z1v0i&|K-#2sdCQXz`QD=(w9hafnjFy z63(4LS9h>#&y&z5Y^_BR!Y+=xsNj|y6hwPQ#Lxns9QTNMRPK~vQz=n6$C)TXNci0& z#kkZL*F$%&#=Zwz@~1BGP{D5Y{qfCmVx~FD9gLxfAF74Ab_Tjo(+Y5!48fyNW+Us$RS}feeiW#P-CIM8 zGc;Rzrzd*o{kyQuNm^|HFat?N(q}gL0J+)$^VPBRbWgz^FIxC1(h5iHs~GxZJzp?z z!MU~V#Iy#G$cobGQHS%Y(ML4v zD4ASw(@$nqimLh2@i-J*E@M1}I{UB~J9+p)ca?LF0(CiqcMuPkts}%WZs1+NA}M-g zx~hjTIJp$#`L^WjlLNtYsOK+fp!+PP5%aO~OOZ5DWRqYE!(i3%+6+LK?jw+_&bklDA zseZzeaDTohO^_G$yJxiEq*pYq_{XzI&ChOMYzt%tDEJr9ENb*7AD?wv*HH7>h(~hIa?wkxi95nv)8t?C^I{*^_df6`pNYjvK zxhfw(l6&~KYL0hzXQfhdHdqMV{9p`Xw_-chb7}3+qd%iG@QQki%%Ym}L+Jcki^UWc>Bi2r~TS#oj4DsgHSyMQUrx5Z%9j1!#mj{E3KT$p=SH)QV zIQZ|2FT)d`1j`Zg5r&)LJz#82W&J7x4Uq$WxMV|vgwaA>$T&^R4cmp?W3wa(OHGdp zFdRYuz+3*|NYuPlA7%bAkT_@08rFDl2xSj{#g=^Fu_sUN)@D3@&cz-i0)t_w{M&7Z zk%5(?9dinABZ_zsDD;KxT8GD!04g4$AHG~^bU&-MnbWWJEjSWY794g)nAXy;-z0vY z)3E$ECGGG*mPO;)$u*EvV+HNd^3megQ3@gWg$(S9D7R8SxXKp6p>2#Sh{5r5mPh+H)275$gIV`vF)^JTC&KsLw@T#qq} zHrju}he2qL@MmmOw)c6>h%%x@nPOHr@8GceL{X2YOXxuUcbRDUe*Pcdgp&BETul5+ z?Rf>fFJef)Zy3W;LaUWM_T~@<1>@?C9!w;B)S=tCAkP>eB1gX7AbgV?5VU7dLl#J2 za1f?n(2)N>jeT`oo6WX$aEIU&C%8*-DDG0Ul;T?4-Cc_pcXuuBE=7tKcP;L2A8p@r z-gA1-J>Q)_lKhg{YtQVNXJ#dN_8KMHXeV7F+ev@kDIrD9erjPn`Vru|+PIF{?gc7` z2bSmoiNMYn@@dL~$fJ8PTHdG+1&W(i7UC0xOEhnLp|G}Ma-?8zxeEufaJxVdPpG3M z`gJ#Gt=^;syGK;|f>IDHE)11+F+HWszsPi*65lx{^tvQ}TxIeC zdJ;@Rb&%-m1v8@CM_>8A3N=-3d#^Pp5iCsfnxl;6+}j`5^exqjJ(Leli|8q3=+;@2 z!1H}*W6D^?34TZIr*}|yB>rH#ULvRv+Ka)}BLae8Aq|4}pnW(GA({8+`YbHaOvxV= z(zE2t(PkLlCYLJ?L6vL5mD$eIVQ5QjA}N>_@~528k348%bLZDs+iE*|mY9tQX>5Z(s+eeyk*&w$M2 z9azNVI82~*n}iN2@=h=5&;wAXnp+cA6|L#UPc>Ut@=7h*w+2%$8%QQ*53?O8LgPsH z;Z7l*oDbK5^oF+3u|;;NAl>g+uJF^@%|s+i6v9&87dZpuAHw7KxI?fDZG;ct7Of3a zKn)djFnWQUevGgFY(gO|TL5wdFCU9)TT zQ^PA33vVP#k^^0jvp*Q*H4`H%v5f5#+d{Jh!@fq_6}j|4@DuLn<12@V{$#q|A5BTY z4vbHGKVw=cfU^i)lqGr{X}O0>GAz6U$|UF_KqM^%ij_&=m7}vUpv^xR(-yUDylWMB z^+o41l0`S8vH=A`jLYyBMg-`Zn2#&8E)@{0UFj+_x@#0Ne={WKb@b_eqShZ^a zYF6uD8&knpPdV@&iU*MoDpB=v2h^W1Jyja$^T;iAi1ZSyi$y4G5CJIad&gue!u-AG z?^U7ZJ+mo`<&VZuJBK34kx(-cq-L@&r>q?SfT&Z-QH-p0SObrhomGu9f)U($qCFH? zz)Xl(N*6#7Zf*c(ED*?hK)v+}P!JIc(EEs8l~N#2VmW{u9O$9&7Bl#M6Tbxjvdsv9 zlQwCAW4mbK4xKRKq;QosN#6@|I_Vv8T8R^e>hiQks^+9B-B3lp)%u!?Q;C#3660Fo z&W+E42|07DeQEZP%;x_D;P50{zg%z()n;tKJbxzMvTX-{SKIZV`N`E zI*|sG9B!vJd7XDTjdac^?!0+J-WF|Cg0=e(u({Hi_~q!&PNGvM?6TaRFr3I+^$n&V zQ+GhYa~e5Ai%{@<9k@k?`=r^~eGAW5AQKAGpmU(vG?Q8sF#pHOj&7xf;R;75@+3=% z6mDd8&X0(e@knI&Vc=&zaHI`W12yb#NPDZ)kZ=Xn z4DT%`aQHF!LydQp1R^P=%#6FH4b^+%qi{P1@I=O=N2}vPwP?KxLm}0*K&UKRfpz5l z(bOEuAN4B1=_Nl@(S4c&XNFw`OcgFcTV;R;&9blIwJ<0PeT78cdS5KFDu3hiRz?j} zi^x3nJ^azPu>?>_1mRQs85)%$7c7Ewhn$h6%^PT}1-g<4osbx8Z4Bt?MbXNDj~WCD zfOD=|fH%&qJB1d)kXUy!1;&roqmzG93i^Q*t_gmYU5fN6X+6W+Mgew*MyHU$z7&4q z%B7@^ZY%Cs!GSFNjFcC_<#XT`6Dew+R&LlRFt8w!vg%_~0HS+<8Ptrk(A$7>>4v@> z>4)bn6@)wNMy+V*MVjrROgx{(`W+(hO^a>GD8qqjHRRa$m+Em)w=RD3P)X9wQ`WWC zNWj@#G7!?IN&=)!okWb(G9WU)C3cRH!mw>hS4KUpWQ@R!Zd;a260r`$kRS24$l);L zW360Qe`^ZtCdqHA>lw6-SNxK8g>eF$9!OpY65}iZgDdtO2FCbizZeY){09VwFW4n^8gC`MmHZ?}lV#b~0<~!~@y}<>p%4p= zpG7-x*&sG`tG5xli`?i;>3~&`^aT>D))FkokfI&+ekuh>K>motLCZez7~H*Y6@u41 z^lw8yPFK@XaN#YZwzG70L+siWDKZf6+18;z7VOclt9QQsfZlVyrW!fcmjXJzQ=|%u zm!Ogo0yyRA3Yn)2Y_JHzf<8Gz!<+~dVKp@h==LDO8uErSydxWk@A8z4O+{V^Ek_nQ z<>kBO*_1$plCSjDd{hSEYzY#f`5A+6AUFk_i%ZK_E|r*BsHp-F z8>0_d2Y8~bkUr>`2nq%THhdN8eRi1mHxfIH9?ga;nxQ99M(=`pQEFBx5`CvVF54an z8X=|lDH6OtU2vV!p@*jd0ht14?%LMKS%V@mbJ1Xc&_-I72v8lTKjmIGfrLZ;fx{dk zBInK#BF!;rRg{pb!rNc0KtX_t%|B9MSt2$$f%GuNe3}c|cwHK@*t1*JgJ$tlg<1|H z#y8H;6hn{nRI6ZtaevfwYEvgLuwb0KLUG~T5`jW#AJPw1VaFR%n1c;anT_s)OvZkf zqVKrlI5S^iU`<-F(lP6EQLCcmQVV+^+{F~Xf!1P%$dOH_z8UQolhUHLjFU^r)Fs6T z$Wc=e?$RP#5H>PJC6Nv;+7|1bNcjW~HcJ_Mx*U#T6$Oib(`R?fdW|?S_6@>Ka8-Om z9Lp<=N+c|>#Z+TsJwHWxv5u=^Bz8n+BiF~s{)!o25TJ#D7i9#0O}MNQ3ipbNNhE}b z0(m+AXfj!d8ui<)Wa5gfZPK!6H2OAg$ThS)Twz();3s~#bE@^i!;aPNY{Dyc-O3zT zYn_iNxq%fS`CwG2_6i!>Fsk5hlJ6g}eK1_Q&Yux&IdnXpsDLr8ZKnNtj5(V%=6S8} zb=TZ-`?2Rw_f}rW2#bG6p!J!KugB%J|9o15rk=jH@M2M&`}acN~=Y~Rt0$~If@awI-2gA8h-%e@J8FAd;?arz4VpKHffK;s+q`FY<-IU8TO zfQ~`8w(F7-LLNUOr?0^nMlRs9ku=L{pHy zXek~xj;_5&$Q+&yS%21Km22~ox*h02=4s$~Owp%@(X1a%Xqp%7;T{1q zzQN1lDDb%dx?8V?6ssf-l!F>*j_4RWE&RsfwNX`?)ptjAgHB9b66RpUjmF;o4o1wj zYfAk~=j98>A#&6>XGfI2P#)%nY+)7UH zp*L@(zSd}EB%DKm>1ZEy0`m!h(bM-L-eWPl8J`FyC(CT6Ah1CgLR9Gq*+EHRXlZo; zO-sd9X~^c$+HvB#kBPF$b5-1?t1W95wIuF~lWF+!mDzPEuGtyZNl1LwkT3!jA)Q3mWkchQ`8t-fA1&m|(%Op`wYj_!1FC>!Qc?Y6b`oXp}mgk6s- zxM_qcyZ4@#@93(~kfKVbZqX91-dEqW9PblC@}0=@`-9i9*p#&&&Fn4{wN()9fH3uI zMA`JxpJ?9%r=(^l^p6znq{7>TMAA?IN{~v`irOq0z6Cy2zT1E6MO)6YlK#dcRXIu` z>Mf&BkhvY#C{d10GJk8?oVsw!Ev>6da6MGxm2kzw%}0F>T$%5k_dR5Kb3PR_;+igd z5cu%}TP?LxuJ?^|$6>*$;o}Tn1I6!>TnQy|z(EPiq}{pWLixPD=Jg7lfZF$8(7cClqc^9&R zehb@5lEhftg11{RM&^p3q+qCAQtaT57B&WM%g4ES5uRv6f~j%0lK^<$6-BBi$FYOB z+XHMl7*LJ_XEIX_(wHxL!hAx3R+ZOW(w$B^I`Me}O&5US`u&u6T-(B9%Q^3SMC$29 z8jkr1!DA%4J-l^$z5OeJ;h7-Mc`Ex1s;hQ4I#-Frp!k}?*hYddiFfC7=J!u5=t(?6 zm*{xl>Eu4`ROG#0%c413)~>Du=MNdh>sj z(S9En-L^=UCrvXJd{}~Zg5*YQv?0QI;y|KLZ@P?<`Fw7!KBejF?6f3nRe9;Se}%5g z^&qsl^Z^})e#=>Vqxj7}J2doZK=LACqeT9?FhbriF4m=JU2<7Q{)Pyzz$grz>dn_4 zO$#3aX_S3Nm65xYYn*W7XRK>^T|>>>5Gh74_IK#$Y;64;IA$Fw?JLmKKYQ+W7Oq;}F6eLZMNp;4O4VGdp(L3x! z`Qi=9ZO+f_p7~S$8Jdleua4E>9@~fvN))T4FSt?=&-?b6#{Bb+-G-NT0AbPfdJFuC z5~-Wf3N4m1L0c0?Aye8}CnR4<%fl%o)-paQ4z4yiz1+f89@v4PP%%k%4Ii=YGRZ$b z=xLLvD(=APw`OJ{SKf*>I^QK9V$t!@rY|B7k>?E`AJR(dM)$%K8N=BRm?dJ#p;nOQ z`Cb3GIR_tx2<_Vqi2c>uj?d4e!!(wx^><61W9p^b7T`JRg-AzRCh-X=qm-kIh7exY zUygwz+y-X;A0AL>)$U@O7iM-6l#Xko>(Y;(NXDFjxxpnqRpVb+o7C*THBGv>awc6W zbCzhhXA%L60TWKx!EPsKNh=-_XmROW3nMz`U+`qHduYL};buv5VMrz?s@Y>4jo75w zM{2pSf?JNk;v-RWJ6Q6}TG}}0Hf*CKul&SqkZ#}?1>L;cI*sBgJXKg-`RZ~`T{$H7 zdMr9WM8)XI+HZ?I5izPP9(eFv-pdsvwN=7G^6+g8Nnds=@o;mkuaM;V!y{!}W5$Ej zj@?x+aL9d;02)ITnD4!debw|q?1IfHRCSgT`Y z8#5junzXaBG^of9a(fOGn+4lD^v0JCxGLHS>o1`;Yb%3G*@IihTiXl{G%;wDihBOx zz%e$xl#V(Qe3;0hW!~4lK=@^OhJ1bP_QH~HAE}<%G!)T<9N%kzFytmBVulk*>!EwW zEQo?Cs?6>Yl@BQ=w$c4koL$u2qxIW-dBX#S97I~7G0MQu8JX?c!026Dj>X$%4hu=b zYap`l`1K?ChQ-j#Tn+#3arboTYp2q92~E5`$RgspN8w1=cJcy?=vGlXvxQ`Jh{p)v zOz)P@mmarZJL5~mt;`ZeKlX*U=Tq~Zs8?-79a&r7=idxq4h{`@c$2-F8@eoRUsk+l zGFic~es>bA%7TL$Z^^OjrlL;UGGw1bVl8H&DtofPSQii8epN=E0 z2*Ri;ZUB3Jo)x{*S&&!)oBFb%f7qG2pc!^cET<`%u@_DA)VnyUVHfYXNoHS0#$uB1~UosJWTZR##m5oaEwH054 zA_82G<_$iUm7q`r4J>kDjYn1+B6tUCPs}_V?=4|$bXdT5XKNm1vjIzw7U4vM(lIHT z#!;njoy@_kdZ2{~_7!{Ot?qMIrfmdtGNmPOxT=*lmrvN?ePHGo4l&W>?}~G?xXw^` z_5EG%p?A}4Se~^#aG5bWTXIRUE!YVgY{aY2W_D{9{Qfa4LE4qHn*~lX+HU^Fre%xq65pmY!Y|~ zY3=j#LLM=3QiaGj0#?D|{GIZQMAcjsLxCzK{K-}p(!3Zb)%{Aysn0-qJ&^)N(y$t( z;FW-vUwcq4*enN~`itthw-bZMgDQqk?@8rO9Uv3Ouaf*lNLdXu-n@zWdn zbFtl5(BrP|SIP1olXXtZF*{sxlM+!Je=E6-TUB8KA6>juhr!Cr6Rfz7xMWEm=N`84 ziF)!UKxGwP+IN6=mAed?*f$2DwB?idku4SR^ji8#3Wo z7J=U*^vl){c6m4z>(zGa?|__SDOhhOwx8IV57x#hoF zq(vYL@2}8axOi>ye)(`F7Rnq-2f5V$701l+ekW7=2a6PAGXK0s8$>Gk!P2+)x(4<8 zn{~I|L*QV$h%B_y;xV&l}>N9b!9WaKIX)O z30_aQ^>BPEi(aN&MfExs@8+E=3!P}s;F1egclf&UED?R5P$ZsLCcSM|;zPnyM-`f2 z8^PS~s?b>ORl5)Im?fqI0eY-#e4N#cGes{r3=79rs`25a@s(0$LQUY2o??-q^_0G-*PC9Akv0})~{gHZVC3EUjHgsSElyaxfR_0^I=N zdm;8_-rPn0%87TT-%_~n$8C?AV1iYcZnXOq-&~s4)?9_fvt2U)jZ#Pb8kB!rCe2qG z$%PICPIIk6`wPQWLlU(jYu}#87e@>69iW<+8N@w#Cy}Lwbs1HgUBM{_+8uyMSmA`M zD@(ofgSC8?(bMi(MOX}*4Yh*m@%1A%FP&cRUaAqKz2)A^IYTy7(rTe6*Xcl5Fsf)8 z5c*+{6M((4(h)-KQU_s|&ue1g3%Wy`%;@8NQD8bxX$BqX^Qm=DU&y)>Ukk@h_V&M` z@#nL4`5=v6oGCA&MXCz#iH|_}AtGB1@pbbzp_+%bHg$(_ibc5_RmCe37*5eSc;hnT z$ha)$rmukziks$HPtv@C9@%Wm87A0c!1qiMGjzRF$NQV-vd8?^{ynd^Gfm8QP1D?yI6Wa8#4v>=2qrIx2_xk;6R@DF6!5@GOxpj&AI zqdJ;enS4I8>2#BVJAnKpdBhtLed*^mlQ&4QM>-(IF@0*54?lDSWZs+to+^mCEKTK( z8Rf|C*e^~=j*P*HP=bp^sAsj?J(TWIdfb8{k;?oz^|RvU0@#y>@08|0yOb+XkN+TST&cH~#uztJ=o$mWl$lYrPg(B==`xJa)lemviGv8g86&Vc4 zSFRTpF2c(OKfw<)q|%z6O)6Sp0*F31X@K@b7vS_}tZzB;d{+_itR5qzJP7$^A!Z)w zh#B8O;SzVjE?IyGR>_*?8{~onsCb*uUaPy|x5|DTeQg7`$ty&5H^$*>o7&(W9(461 zMgLp!I&N!!LLIX+v03B;=4eobvxtG#QM-<9)U?+a&-#R)d-udkVnXoQH*S?lW!Pl4y}3czYH`M+=|lyMnjj z))hgkHbBkA3Q}-pa+Fs7%D4nLS?C;=Jz%b8ODrN|o&lJdDLa9ggs|wy zOa*_fK(RZy&EB3FHT2&jrJUirU`@%8=QMT0+8QAuU_ZCp>$iU z_PK2t^#zw%g-TksM#P*+7t!O&JExf^1*)W9WO1<$;KGV&gpq-R`V~+1XItm>KO?Ru z*cJNBLb`@&S(B6;prqMRhQ8dzukvsP6R-9!8N<55Tzua zH|#lx8EB^kq07}5ep-Ml{FuUpr6hi~FL(-e$2Tstkx;^YSi;Vf+8GP%-MGVEKrB&? zS-9c$wESl8msooW|JEyEjT8z0ReU1&kogR*rrOQvX;$-A8twfAL7(I*Z9vTm=I3&z z`>mOv5~j9%`t;#enQNTQ_4b?v0?n`PSaCP#VOiiJk6&(n99GjH@@-5~0nN6R?gySE z9J86#Sfas~MscRI=Iyr~{IA9sb-`r2x{4<+81z#VXy0D9%f!V;f_HHAFnMATZIB&J z;;W54`!ejLWvdu;7=B3>E+|=57f-CLi4CjWl%4)z9q*p*o@V7^^CT9aSxkm`^*pCd zpXBeocJ1W83a}JxG3kkBnnbVm8@Tnbf?Ij!5o4!Jsl3TnPI|c=95z4-EYNKT+SG<* zQ~OJl4BIN4KO5+j7J_K2goR_(&TZ-ron+O{z*$R-CeYo#Q4NN1!mL^K zq9J-tzCKfln^7gM4dPaeZ!}LuYVa;X!GRLc$ft6Oo?1_%Bn%|WdiBJO45aSR0OP`A z+7F7@_N7{<=e|kLpdvLEx9@~nHn3P%5;BFuxFuUVr(o)ci1H?pb&}@JMrB0Jgy5sq z?cDRt`~vE7uE)d)VAOo4*JVgU*p@CrCBTWNpWQ?s1KS6b9q#X(HB#CHoA<3Z33bKr zSMH=7mMs$lw+Gd{CLs1d{-`rsc7e;3CEH!EA|Zpe0)Y4FdA$e)x-%kb!kWKgf0g0n z!;IvQjwd1rkEpsg5jkf);=TJVMj_`Mzu3o1dkQOiK)T<6m>Q+=MoR|d37lH z`kCn8({@P`eda%b0RXk&007GGbO0wSTQfZ?E3;o>{EE$QyO}VSqHkdI9r7gaz>6th zAu;J-L;6Ey+$U8z9Sxdu9}o~A(7ZZ&R=j(RtPh3o$e{CYX89uB*1tYw$7~XYVXEb^ z?)Jrc53*sK#!r+C?OrjEPc!!>O~EVP0pgF0Qt&>Dr8KLT9mB#?rA$mTy5ftnGiK@4 zm6*vpD;g^?2aOGb)bVr{;{oL{3XBor3cdc>(g9Vsk%0{G(cRJCb}*^xF_?*yx^L<* zYV+oDfoSCk=%^|)Mx|Yg2$CTN(*$;F-UT(0@*I`RIEs4Pmunglyi5E2Z*UDuNJd{Y z84hc``^vB1kcG=@a8MF|%HG%eK5>I&M(G^wQnGWXYp*N0>|t&&q;y3*BP!(VcJIeNT= zNc=i0IS>WCv^1`u{&&R%=$CQRwly@j`$KNQjnlE^`Q@{fm$7}x%>Jtm!_S&!F{4sF zOu)Wl-(%o*o2(Ni>YP0z=s?!M!#h#td5i)*=EGrItDpkiR1-{O((QK2in~EG-p}lw z{D>A`2L)dNs{zM0g%fvY)g@nv($?<~F3Q$jkj;B%diVZ*+q|*!3}n%o?uuh9K|Iu- zO~!YX*zDddv z9(_%_sT`f=U>=1T=I5R>+YY=Gg@)!DwRPYdI(Cu@DlPj+k0h!Qkf;>8xTVoTezHkBI z|Hc!j&XT;_?X}YRsUdLHQik0(N$@&-T=c$MZl;(Kamv|EjGt^&`Qo{$z5Ti4}mls1UaUW~*D(%J^kZjuIsUi_4alE|rd#G3a3$+vR~~@= zcqkDps2${@h8Y;7qGgwjvrm5C&vy8MrR%E)-K8^yG-3+dt2Pf#rSJjt{yfo`co}wS zrrmJe3G&3vKBk1kivz}w?f-jZ|4KIc87wygWdXrGcV6l7)%J;ILasC<9uu9DOv%iK+<@t-7WdA#RjKyLBN z)-%_<@zOWAw$fur-()zKJEKtN)z(nE-I%Sji1W5m34=(y`GzK%0dgrDCV|>&^J^G_ zF1N3#Cq2HpI#Df8XsqmB8RajNq4nYyKMC9~btYoY3kI*^@#8PE3C6<}(JnSqS_96o z2J3TheC#4AHwJFRpV~wUx8w_&FKx3DbGS(T79N4-wU&gye=JFcbRx9PKWX_Ii&4;4t^Y;t z4Hdmv-)RGDjm^pmtN7yhJJg~!up`5PT32eoLzXo z2Oa%G1A#{wI?K(dGGnyYE#m>Tl*tWm7A<#UwFmaSzffFF=}R)T=5;l&9>1le%{!)7zM3nc)Hic{c5M2< z;+nVF=-nU<&K8rvh?sGT$Uf)Lq~&-)O4fBBENWEHlr z6lt?3T1^G%a$7Jjnmeb(M@-F3#nkP(iEbUDT0iIwX;Lj z2H4IAo5G}-EL{ArF)%MJH_-@79XWBz$Dipu1(opSf)Fuc_19T%Tyal!R);h{vig(l znjd^;okg)mcAhVx!ZuRJo>Ya<8(or6p`|>Wo4;k9&t*1V4ex#v)pC#h9{+LalH-r4 zxN;x0_XmA^<2iVI>u`*Du|IS^`MOqQ%a-R($&A37(mJO;{{uI#HS@?bY(8N=pt z?AiTeX*O`_q=GmM{7(J+UALV&@{hu^PxE{Y=-iz#lg+ISw`SFYQW5j|-yzS|xM)cc zhd1WKDi*4%WO7H4bq1k%@)8+J?`LtjrzmJHC35!bIM{7#b+Zhn!fC7EBdiIw!pKpg zsZWl(0O1k5GfV8n-Q1Lsd$sOiOW+wSi9^$gVVaaXHtJ`%y{YWLZwwy~Cg(qx&3ewq zx)zI?d|U0O7n=7dHd(nWk8WzGS{xI9?s^e0>Ob_lUp=)U@_aeZ2@D+LSJEgfAn5J7 zfYl$P^fFKYFaYt(BTVOi9JAj5@IUMQ0{HdfuZN!`=63C@AA{x&thPuFK=sQ{gXoddnYk?{ZE8mrlRl5ru2`>zx`4EtC_B~ z_0L)Pr}ZxL_ZW^BYyKB&)L)MN(b|NUcmL^B-^$kTKbaHAaa%mTn0dZb{&^kzEWe#U zz5xDh?qFwcW$`z_e~$1AZTYMG><8`3g7v~+{_jz8X#N+<^JhQ*p8YOAZAV-F z>G%(__V0cFldk+hTDbl5cbVx{dcS=bKNFyakw@7z)Nhpm-OA1IxOG^Lq`>^&o z``ml(z5l&FY}Q_LjWy;w-tmqx2l)8OOT)pVT!Z`xlwA;nTz~#S2LEGZYbbAT`^4d% zJTSur3rJ8in^ChjJTTX;nZjPXhWV$N{*xz6F4k5luUe(xSTF;&eYP>}OFrRa(S5>w z_)fYkaE;Hzbn2}QHtXWh38T&fq-JlLIkDDG<_1)!sgTds)R!Lw=FlQ5WVFi=$u+j^ z`T4uK;Y^?D&(N=42o1j;{ zkD_eIjOHIpR3K7qi_7A8^0nU(J-mamcL3fBNekv3?FOuC8n^XoOS(VTUDDZmHDoXh zu2@3GVcC^giJCZkC$A>7h}OFn6Sb|;loZgccM%=k1N^J8Vyw(2pOcXiPUbiUA)DT~ zl}-||CnjD%lJ&5t$hN*7MdGnXQ;VnP1Fx1w$;kbSB8I>*eQUYVOtwsexe3I5V#x^_ zEsgwZw!Qx0`!}C-4ldrl6CN0Pe{u$K(JFWQBXQr&76Fm-Yk#F#YjS=8LbCv%8S77) z4Q=g>Aw2s>>PojWZUBN#3pN!NJtC8Q*h1GtJ5g-WQ|W#&+x*`ptfA}I-9dcAOcM9tAnSC{^2 zKhyU!o!gis1t@4;zDg*4Rf zPanL#3qMd(Z+SgK6z1mq=iy^MJ&Q=B+K*CMfpm580@cS(TlUUi5lW6g6aRHBc@%MH(28n#G})>H6eK&uVtxLir>~fo0^+z zaX)OIY0s%SB5i)g|Lp1B*{7Mn@gv(=&+mu5D_&>qOP2#5(mdQ6&v%v&XU+o~?xkHW zZVm5wovwLZmfZ7f^!mP@v%R%-J54{}Mq2Z;iG)hr z%ju3p)Pw1!1`qg4xw)qE?|B19nT%+lREKmUH)uqnE}#-zqi_O&ZbyW=!4-tTS>LCin%|_B=UjK%2AT zPfB}0T)wm+$=}mFlL<#YYw}*3(8nu|tl<(_|4}O2!W_rqMTLH2o_GTsUdlN_UTl$F zy+`BuT1en2Y1%xz=4hS8*~W0^l+ulW4_t7JJG`wruz{G|?ICHH=ko6${%CDYaXziBIxKB1B}f$? zmWoG_eLa0-+3QEmF>~H|-wBgHHO6HnMjl4t2y$2viBQRVn0(*V=Sf~iw*wu)S#Ml0 zvj#nGMA{v^FcXCr!-s+qKt-!3Ehm?`k zrhfsSXXeN-DyDWJ81Y{DJ2KXFSIS4=J{gb3r&7V%@3W~7a~@|~a-7dsDN%yE${Jy3 z>;A!FhFhZpM0Og)NJF(2T#Rk3;%&@%9SIJQExsQ;!eol+a-@qdR`UC(;5{c75iG`* z=VyokZ?5HUoX34P+^v{1>7nHg!J z&I#*4i54Z5%tHg9`+0qUpI1P3&_T&&z|*f(50cPN?!` zuRP7qJshEf636soo?g6BTkeX_{Hqs6aVTrjDmU()Bg`^M4o?fbGj_^zFQT(Ie?m(a zY-E1i+~>=kboJVBo}NbcVcXD(kL0CB!L-iAfx<(N?zMEfZsv^~39)v~xJ^+O0W?2z z$|RcOC@03(D&!1vejyMs3Ac0A(Z*ea~>?KJJVeXK<@x!0F$LyIY}ULyDRkV}-i{ zg(jx|)uENSTTFjk8sUJdATXOUqiUmNqr4usxgOZ`=-+un@u^bXkGK=o;1x1WDoTJP zHKPX;0aHThdX~@0t5IRaSKeRb>H-<}u(3L63n&w zCr_HtZ2S2`6z59~io!`2 zKgI*5n4+R&DE#2g8F$e<-0vNNJ4jnF$?F@D3OW|G#>^KeOvULV7KhuRI#zY z{jE&ND5AkI2Pg%N>kUB)j)k&SEtW~ch@^a2F>ULiG7KRgJ}ndZi2=*&i^^W77AC}i zlU4gMwD^tVw*=KPZH&+g>j+>Xv|@gM?^NuY!d|p2V-yq z2F0Hhu3*x<%X{uey)ey9qm=Q2c`8eGXxwkrOr|>5NbV!$d^C02$Lr6>=2G}38>Yp? z9Wctoc<~|zMIJfH=8ECyS4*d47D$2^^kU8_W%lRreJ45QvMt}p%k|v$=8mA?SE$S*PY{tnb`hw;Xknomzl{Ecf%x03J=b7>X?!_+k%`grn6{C9)e(o&l8EkSP&Hee+cFyy8HBV=oLrwh*3jQ$%q^UF%2{ZC+ zUPvCerSCbtYNi(H9E1<4qcIl>;g=O9m@l;+E88QF+x*EA=D5hF03^*-ds;MKErBp( zO5@#MQNO>Xw8>(d&xmmp^fHFp!o3b8xh-` z=2sPA>|{p5t%bBX9&1)ZT+i}84Xl`#VL9G+B>NnOrF|5OnM zS;mjz1JKwT3r6F$noViyb{e%lK1m!y^!#cAXJeA23&h4x-2ywH+AYbgyy))~znIqN zgBI?(YhKj8$Db+P3cCH&m_+l$stpzhfL&cFjOwaPvZ29JDSpQ3$>jJXU`LYlWaud5 z$v(_$Cy#Q{C3R2s70j!ex*`VBed_t??g&TG6dNA7krc$1y)AsDmm#e5A%g|MMsvj@ zM-hfalGEOHGg-cXlBmx5DZoPYEw;=ZREYf=WpZh^*j7KuwVuRGMN^G0%Cev@*eN7K z0}Wo*|ApM^FXSWqzv>C z(Qc12RRp7CUbS98k;YzC%k%OH(nDjsB$dPAOqIj$YLetHQc;4W$&bbckVhrRd-g$H z#rdrgywanKOO1#qi7#?4)-5TYSodEME0(=+t;iIOsT-G5AkhJ75Hva5g=o;^DEv#m zLf&iBY}_jIS(i*7FC@Q&VJlp6{Dk3i&O#ND^P+KO5mW$@Q=(pe0j7NtL>8zI9ns|8 ze&-`I`#PRVVv$mRZ(V7vx3|DN{JR=m`r$E35Ciy*o&Q)Ug(Nz!<$^W=jjB{_olc+e z?$THHiMS^DQQ;g~J6;%Po%31}#G z1x$iwh;2W<1DYrH?pbb>BZDXmp_HEJn4-|Vhu5nZNs~BenMknUf#mY)Vphaqkm@{Dod#<8L+K@!4>&Dcs{ssY8(L%Dd0rFp5Y2FDM`PRc?yc0dt#rHU7I zK>5PQYV%QrioTf^Z$;3O$()t$_<=cD38-14Hj3V^9cez8Xuk6!B{c<7jsX7q}bJ`3I3LV z9fovI0VK+3`4#bALy9BGdsK=~Ji$4N%-C3tJ@r9Bd(epvH_x!29!>Zm-FSP|RRzH4lP z&byets{wIf!O*UCJu4GQ>CWv*R7Gt)Hyw#NEXmzo72|)57F| zcMVgVxht@dB)dHK5&i2Lh7GrlPW$jMEt?eV+{X`7u+9u47ZeoW=`n8zBQU-_pU>oZY_zJ~qAtdxr?S;M`S_2rIg$Mpxdor+L3 zJ<6oq-12v#PB{3e29*)&ygcwpL;7PNGzvaI!z+EW=H99X)5FxEgdgb|wgck!>7ht`&1fY-uDDX;6%}Cd}N*-?ol4hI0ypVSEO8{y8kS-fkePQ$E|?f%4*T{Jb#~z0QLu0Jl#DkQcEiT964l1<%c%bY41A8-(Bf0 z07XsaKzXpYxoEN{F)3@&rWxzHOGl>^!tq&zA}j}e*BULvIfRFfc6peByk-=)PdU|g zHynojlMmP8ut_cP01hC!*ZCBeYDgY*bg+0qf$6ZZ0LFg3EkjK_Fnz8SQ1lw=mTnXx z{@fz%Z)N%6(d6>pf&nPp^QZKKZXu%xPTR}Vg(OEVj_@sILTPVqoMtU(O zJO1!2RQWXdVA8H&YYg5@`<|6aU7$UnE`SFr9z%D0(t4A{ac5uJz?2kJk^P4NCCrnPRsP>0~&dXn4RIQJ}k3`R+aeDl|GNI)mcP%@j_-J z*@+gMoUM<^!rZ5zi=e90;pBc4s$El9UbQTve)ZB!^No`cti;_BL3VaBW^ z3x?shr9mJel(AF_ZZ+dy>)Lj_cjlqCc7pxkktX%0C-;!FTO zbQii8uy-4)mVJCTEFZ2{sGuHn-lR?+suQO<5o^LDUy2xeb#S00xZxhhg_VMn8!0rg zr?8Bad51ILZYkor^urMLfrrnw1G6|8>`JCHZCl=TYM{{=s(j{bON=N|TRrrv z7V7UDZ1(WkNGK2`43}$jmVbkn+^4L~@{ZGJ?0-{?ris(FN0o6astYH309#VQp&O6q zcJ0kckrLt2q=eU!>OlsC!IrX10qE=>E3B3c~35&OwJ2R}P_4eH}0QVnG; z4<+hZj}=k4TuU$SR++taU8cv!v0>^n=e=WRH1;wRECyOL1=Zk9mUYGJ;0LqEpVN{1 zvCS16%wkpa5Hq14EhST$J!ucBqc{& zEc_^A1U!e+2%QxSIWZl$BK@XGw-Lg8X0Qwa&pDL}7l$Uwn zS1cqp`wI>^PYH1H89!xjmPdKr5XQB{x6=@euCKJZp^;3CiI6LXTh`-E%PvhR)t@CI z8HaiO4JA^()%t46$CaBufMQjZjX}Vy05&Gon3#< zWeHPFPb=W5Y|5fi@ij#&lHF;>xxZA=3+cwvl1|l^S*t9Uyc>Dpv78H->x!*mgk z0CqpAON|>O+ecr#_ylhq)=kU!SzE9cp^v#layk)C$VViFxk!?v-?Bb*DMX_|u`aCZ zsE3Xwx18%z{!y?h8WT$kyL-%N)c&Ah)9TIa$_G=fj(H7>6l#7 z%+MHj%ZJksdlJe0A<^6V$q^$BqQTHg7!j3)uu`Tov(mR*@3ri2;sEdS4}tgM zuxVRA&gV{5dEJ$qYGSxiUQ(}sqM?+Ze0n#hcBpC1g6 z*CMie05KjnK+UpbN%!My^ZVu2vJJSk0&ZLIfZKS^-DO)d2$yi*-wVCi!)b<~h{v3~ zHa40~tvH!^q>g7jwB7hEuI=P~0k!Y58F-yU3r3@*r!=#P7U?39@7xvdMl;`>O}0q) ztJ_&qdR^SJ;a{MmZThiCPlkY2Q8mmO@iBgSs6Y18=dAcr6EHo18AMvc^bR^S>A!IH=LR6~hYsP>SxaczZHXM1x++tQI{35h5UtstS81_p8 z50$2j(TAb_L#bu*lWc-cF?khc#-+E=qVv|@QTt9R5cOy#PMk+Q5`D)W&(9UOd(ec3kFp&U zeHYoVIAxl?)i!FNHtL9LzNT9U*>t`JnO2eTFu$3s$%-x_oe4SVE582YWL|tJM!Ovx z>vWN?-e`bDBvznaimq!TI7SjBvTMDi&02X0vdy$Nwrj>M`P<5Lj0i`Sboj*Af5@g(ei9vDssRRKBB}vQ-fQP5%JByRM5Bl}Su=Y5 z;J@@rqUUbGXljuNtRoy#PW4S2X~Mw8{dfQ5qJjqmI9NQqIl9SN`&Q<>aBDQA(K`C6 zFGt){$adG(=veiN@Vewx4adJ8)>CQE7LHKQ^qR0u>-A9)Nq*1z6OX?#z~csie5&_E zL5)_Mh!J@D0a}nx6tS=zmT=#~`krl-FB+oMQ;&H>P#b?^P?Eap?T+bW9WkTa1qtSd zn`>*xteH1&9vG|XT05rLl(=W&OC3qbT#?57_=?>&Wh2)mEC$c=B{zac(fR1qQgy8& zbX@VYO96fmPK*g{B;u4}T9|t^!)wtNY_+=d3cnh?+&9apBr2?f?gb~Gjdr}MqfMCC z(ljg`3~L;Uklc)G>GA1fOsCGFM0zMk9A}XK5F*h0ou8V=M~!9~bKFH3+X?l4#i#IR zX~5(cJW3H|@U5VfM?|utd#l5LfdDE{Tj_5~#{jrd@!V~FCI4Qq`!?N!KPv2}8&R#- zp=AV0a&4qzad)&`H;iB6_NY1hsvkHd)db!U6~y&=K|(_h+BAHG4+OL`=j@Ls*~YZ~ zQh>2;-mLFmJ?0YW)r^{~&}dOLWClhmV$d?Ya-%@qG>}`;chZ(&8PK#9c`NrZgzw$Z z7YeB?k9*jVM-@##WQO-#l45jRc@)+W8&^ZOv5A2YJ(C{&X{U^swxX*8x<`<=>Ar@; zNXp1AIaPMrR%RlodWwujq2tgg>`@DY=$ogytUvhT(0lzzn@XpObTq_0;6O(5E~x%Q z>3`|~aG(PyFL1Qyo)#??N%gVS&sl(G6B@dvFYe0|SIib)Q1GZfE2gy!zULa**jpE` z#{54U31~S#DYJYlm{2d(XhPtmTHWZBx5TnmT=-%rm4&s3;rU}oqeGL|HeO@YAS{G| zGhUyOf8>Z-%9T33 zzNgmm^FDR9=jttfDT?)Xfrhn?r=#Zo3#W-5V7F@};y@h=J4Xdm8-itsR`n6Hz?148i-j{I3 z&m%1LX09`Bdl{HUHL4tP#{-WH8PJ2noN&{~zSK8XEL5WLwN-1!TkAJV)g*6`R?tJ4{IH@2xad*Z8|*lJ1%B|&WD1| zdxFjS5+BJN14S% z`Q7LL$_=Ay6*@}E!ggj?!GT=fx-YEE!}dhy0CLU9}sWyP@eVdY|4)t8PlpS z)}Yl^y&GLzAn4SjVQT(Aj>^6ydmIr_M|+OZ1+rDT*=uU>?Tr%nrF4FR0l3QKrmBvs z7wg<5TUI7HefQe%5~Rz#!_&CK)4Idcu*1``!_&0G)3&3T)4+?_z>D3$i`Br3)8G=M zbU5fd4$D_HA-ApIsdK^kRDL66c~N}S>;iCJoJgyzDifVwKrJ;o>bK@rWo{eOQqx+SKcjAc>P@|drv3Q#v!SG|CI7U(k8Z;=B46t*j7E~SmH~wZ#l@c^1+Pah>W+N24TY9mfTS*+l8*cI?%Sx!WByAl+v>rd)l)8+=!=ZuMCr5+K_@wb zMB^k*5kFQlZ^Rz?sA$rP9|Pz~&cu%~5)6lfjIpd{wFo`((%}pl#V52S;wH2nSrIRW z{O7uIOK@3NhEiL#w2f)wvd|{)d$W#QTj(r=&Ypigl+)GGjE9oKPJ0Ts`I}AR_hW?c zrF7|xK+^@Y1sk-ty7fe>GaB#YSiVL(x9fdC;oNpZ*tLpPobCgdIS6sG9vDJfbO9Pk zN*3CMJW6!BK-PDb0$xR(nm+jxDKZ=|^BRq)q9lMbT(7v8HM&;;v3FOHP@{IwP{k>` z(I){i&w{S}0~t6r(E1JNd`0zMqus?hX0Zh4yGNG1t1DZQG{5pTdpxZ+bkqiuNjd=b zmK97LbvC1_C^4!Wdxm4FWy@F7IvA$2jg1PuQEjE62U=)VcC&nLBU$|t%U4u?pb2m; zc%(=0#2un7uek--tM}-Ej&E4VabQfh6f>Yj_>YHzaE00r6Nv*+%q5wjM}!_&e$WGS zE#yugh=5sDm9WQ{&KI0`p=Dzunp^KfGIB)!@l+pV3}F3Q)aPM5cEqX6_Q=h5T(BQ} z6M+zVFa_Zr9C(is-YI|skEkRh_2B87AM*&v$9rH#siaEijGnBsPV6F9B4OI(YTRhx zHkPDH4F-s=T&|MeP+SqgnNQd>){)fbBDcm&a4$La`o9V*V?43KrjMv3E!D|zR>b@R z0U@|1OG6LMbgfv{?cHZpOb?b{uR;t!H#1dpLaFB z#&#B-zP$pqO~CPoBFCP4v$_@Wtlt+4<5K>h3G(^R>4$Kr6FG1a{&=xzv|mM?@3NHD8B;∋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 diff --git a/db/.~sim_infos.xlsx b/db/.~sim_infos.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..4c491c68136d506a1c8b63fecd8b209e811384ab GIT binary patch literal 165 ccmZR{DM-vyAQ`YQ Date: Fri, 25 Mar 2022 14:14:22 +0100 Subject: [PATCH 28/43] no need to listen to rabittmq --- commandor_page.py | 2 +- logs/AppLogging.py | 2 +- main.py | 5 ++--- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/commandor_page.py b/commandor_page.py index fa7759e..bb5313e 100644 --- a/commandor_page.py +++ b/commandor_page.py @@ -51,7 +51,7 @@ class CommandorPage: self.clickOnValidBtn() # self.page.goto("file:///Users/lpan/Downloads/input_otp.html") otp_input = self.page.locator(OTP_FIELD_ID) - otp_input.wait_for(state='visible') + otp_input.wait_for(state='visible',timeout=90000) on_ready_for_otp(e, self) event_is_set = e.wait() logging.info('event set: %s', event_is_set) diff --git a/logs/AppLogging.py b/logs/AppLogging.py index ac9be75..a9f9f49 100644 --- a/logs/AppLogging.py +++ b/logs/AppLogging.py @@ -8,4 +8,4 @@ def init_logger(): filemode='a', format='%(asctime)s,%(msecs)d %(name)s %(levelname)s %(message)s', datefmt='%D:%H:%M:%S', - level=logging.DEBUG) + level=logging.INFO) diff --git a/main.py b/main.py index 8ace3fe..f6c173e 100644 --- a/main.py +++ b/main.py @@ -178,8 +178,8 @@ def on_ready_for_otp(e: Event, commandor: CommandorPage): def start_book(): - slot_number = 2 - slot_sum = 2 + slot_number = 15 + slot_sum = 26 for i in range(slot_number, slot_sum + 1): card_pool.reset() logger.info("will switch to " + str(i)) @@ -232,5 +232,4 @@ if __name__ == '__main__': init_logger() logger = logging.getLogger() logger.addHandler(logging.StreamHandler(stream=sys.stdout)) - start_listen() start_book() From 6f58c95aaebd4c710d7551a0d82c74f430bd14e9 Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Fri, 25 Mar 2022 14:16:06 +0100 Subject: [PATCH 29/43] add ccid to log --- main.py | 7 ++++--- pojo/serial_modem.py | 6 ++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/main.py b/main.py index 8ace3fe..2e2e808 100644 --- a/main.py +++ b/main.py @@ -199,13 +199,14 @@ def start_book(): try: modem.get_ccid() # find the contact with ccid - contact = [contact for contact in contacts if contact.ccid.replace("F", "") == modem.ccid.replace("F", "")] + contact = [contact for contact in contacts if + contact.ccid.replace("F", "") == modem.ccid.replace("F", "")] if len(contact) > 0: modem.phone_number = contact[0].phone modem.contact = contact[0] else: - logger.info("contact not found for this ccid") - error_msg = "slot({}),sim({})".format(i, current_sim_position) + logger.info("contact not found for this ccid:{}".format(modem.ccid)) + error_msg = "slot({}):sim({}):ccid({})".format(i, current_sim_position, modem.ccid) oracle_log_sender.send_contact_not_found(error_msg) modem.modem.close() continue diff --git a/pojo/serial_modem.py b/pojo/serial_modem.py index 81448df..f639638 100644 --- a/pojo/serial_modem.py +++ b/pojo/serial_modem.py @@ -1,3 +1,4 @@ +import logging from dataclasses import dataclass from gsmmodem import GsmModem @@ -13,14 +14,15 @@ class SerialModem(): def __init__(self, modem: GsmModem, ccid: str = None): self.modem = modem self.ccid = ccid + self.logger = logging.getLogger("SerialModem") def get_ccid(self): cmd = "AT+CCID" self.modem.connect("0000") - print("try to get ccid") + self.logger.info("try to get ccid") response = self.modem.write(cmd, True) self.ccid = response[0].split(" ")[1].replace("\"", "") - print("The SIM card ccid is:" + self.ccid) + self.logger.info("The SIM card ccid is:" + self.ccid) # print("try to get phone number") # cmd_phone_number = "AT+CPBS=ON" # openBook = self.modem.write(cmd_phone_number, True) From 1e79911235cf7db7895528f09f69fadf0d27f629 Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Fri, 25 Mar 2022 14:22:26 +0100 Subject: [PATCH 30/43] test timeout contact --- contact.xlsx | Bin 51256 -> 51048 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/contact.xlsx b/contact.xlsx index 0fa971443f8bc6f7ec9c6badff8a861dc5a09c1d..1280ed1805ceef9e2c4f875214189cd4269adb66 100644 GIT binary patch literal 51048 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 J{P&-q{vVUEV8#Fd literal 51256 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 Date: Fri, 25 Mar 2022 14:34:11 +0100 Subject: [PATCH 31/43] update contact --- contact.xlsx | Bin 51048 -> 51063 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/contact.xlsx b/contact.xlsx index 1280ed1805ceef9e2c4f875214189cd4269adb66..211390ef5e37cf416b2e84c78ef1f6eb9092f5b9 100644 GIT binary patch delta 44278 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

i@$?xm3sDVJPe0VSj)mfnwNo^RfF-usU; z_niBh^T#=7=FFM7uj^`;`gDmoP;;!K(xHoNz*pnXf(QGoLdGr-%$rrjZkK6{NaWQ*9P>$`?0YQf14f4pZ* zm1=z3mE#J{@>t3NoVmSpJ_p-tAZvN|nTiTe4O?C6zy^lm4jB0HldvT4dF%VSl=_18 z(>9?tpXVinhV{z4c{B9wK1GTxgKheBu7z}B(Vg?l32ISX^1B2*xZ=D%)5hKRFJ9+( zylc^;*{f{bq-;RHTny$Fjk1kyQ*y)P7J>KNtm>T?`;nYLhY@0)hv}PHpj>Xslb-yJ zL5tesRqyO*l8v(vqFbsNO=V)$4x7)e`bwVw$B=y5oh1xJxV-$GjPd6BSh1^pw`_fT z3+ac-wrd-T9sES{W$te5ZpeVH2|?Ah-F}nd0a=gA${FVeFM&Y(y)%&mVIzr0sBe{TN9GWTmmu#&4mB6&;Lx9;Y`zA;c|#543` zcH+$HBag)93vh_!UkmpO61o_KvQ%vP&Uv-foJulqE<%sy^Y5)6CltDr*3)IN!W!%p zPfpYLac%izuGw@ME5pupEN2CxVtmY^q?tR?PB!M;4$8$SQfG+W8J+(;9;%+~=~>;M zRzSD!8e+JqgMU!IuUinAkgWp1qrR&e_v$b*&}yn2YUMN4?sAN_SJ@IfMSGtsnqQ(N zVh&ig$$9SId=_{#VlB51AG@F$FV|?${?G?B<`)?@w+8vYfganizS!RU#epABaxb=t zm6=UUub@opce&EXfmXy5!-(3UK9Y01JaWz;cxV%e_@}eQC|={ujM_yCxv|!9?|W_B zp!5(GwKp_UVk&MtFW?rnj+0hd4xxkd5If+E`5w8bX-ofbEkZ?<>C8pdj|LS|g=DW& z+F%RhJ>AlgDkyPKVy%L|Ei_nQ%q9{N`l;z`u!cLZ?;Axon0Dg)GB$K`gd`XC zI4CJ9V3xRw!pSK=VHwi6pY8=dK4LxG^*t7r(hDw-cc{zdvXJ?9=~Rf)o!UV{j)2Ci z#jcSz*2!(pv+e$p1lX-K$jJV18ReMpg1vMU&yNbYh}E9K+u8{M>qVT@{Eiza6LRaQ zB+J?&!?3NaMMu7HY}QS}Z8*vQ__>%vI~u+7LCVIxzh@ru6^-J<>~0=Chi+0fO1j2U zyx;=^gOHfhtOV3u%ABj7ZM`UdK_IEZ>x#C+IX|U2@R&qSD=?`2`&?zyCA}fR$ImX* zgTsG$U#|>~op%&?7_>g}cmToDP-%=~ulQCyhEcP1s++K$pXJi<^0fQbY+Hn1I2*1s z5=lGxN<5O=wY}WtGc5_OB56>4>!DwJTiRR|nhT~o=>XV~dF#`2 zDuWC|!^1%#yezZB$EBTUlM4x_`S1f#tBrJMayiTNMFp+Z9Uq+lkm8|miOG4+EVVi^11-R ztyA;bUs;$a;U11LToZQ_fLnw@-Fjyp;8ZH*>IIi9-^ZwciY$zjezxarKf$}gaI?(G z_0x3;j_+toR%d)1yeFfo%_D8>or$qK zjp&qeJAA{6hO$>(&2(w)MEnQ0{GJN6 zNLAvF>7MrhFoV+BeiWEpU4zMfy@f9o-cz&KJ2m&L za}M_h79<3UeXd9!?ba^>>P}{l7#az-?4{GX$M5-dYR2;W=rwa}hL?YtGs=FZX9jyM ze7^rJ7RzD`yh>i+iKU3ro#*YI4zG+WfDSXImzd&&T%Bq3QbZRw8TFBDN6KD;Da>a?lC}VDo3V-|$-#(-KlBHy ze%5e0=Y$XdGwH1$JwLkOr$eM(t|zunWsoR`EI;&vu!>LiTU$QbXnk}x)1gvVg&ko| z^L8VZsIJ~y8yNexzjA@khgE#8D>5Z+m&g{>HvJJ~o302ot_cY=)F6IvTG~+ZsCHm3 zsX=Ut7J5zO*KR_9GIA9wS@dHN`W!$Jo51z!V1Nx^0Cp$|=pGJd$Kn#!lmmY8h<8Oz zDE;xZOsq0A&}t<_5Jojp4M2WXiYCcGIs;*oi2>IBjZ3DC)eIpD)wiE7Sant@^|Uq4 z$&KG9)w@__HoAGoKAtQNzC?ZVIK)dQ!k=K#Rk^ka;F^8SqnNWfeZ83td-6CwXxUVHoyCIV28l4#F|J9PA2vGHc&^B(p@5E(r zW5rDqbuH6J(k%!yeBF)d#n-_O3CH=bt#S4!l5^{LB(diCGp~!9R^e%WgLxLVv0@hj ze>1|=&vx8*LlwAD5oN1^jngPv1<=iD0<>0waiM{!EX2p?Q*`F|J(%^wPwnqC;)aCk zA3Cf%l_qfH5E0wZ#+4!r-yr64gHUu8)2ZePRsP;N>8Mm)PuLMfTUi{DJ&X;i-hpQ* z&uFtrsCy))qEB*kORfi`aiK2Ps$96BT0LRz`n^m6JpOvOg(TWS;?#D)MCI5KsINPT zOOwUkp>fV0d)s8Tahx$%?VK1p82M9Sg*aS;td@|Yox=8X->5WM9r}m%g_~pQbw~zp zc3ih}t=kEiS)|t=ZY~)z^;gy9fJ3xRD4OTvg^Z?@Q>&9rRO8LYtR2IpH;70s zD)>v~WNOnU#%G7THSa9mGN`@*cr)KfRV^W7g!~%_yo!}wJ;J!pDJDPlEAvv*A7-_3 z?>ayq_xwCE59DmrNSW*#U=a>Sd-^}oqbtod(zM}uOdbrrCGaF6|0#uZ>v#3K%Z|1u zKI8lg2B(irPVSK0)tV)Dsc=b5>#d7D-^T=AL)0r+hCcUlyI?!t{gY5g?I(673V* z+g>}Yv@#7y19OOFYXTfAHy+Xg`#>Swzl(Y0yj_we5v_@lG4#LE z3KX86-&o(Iu3JGgA(KA()vetjzJ13!_hPv&8}h)%X1pf#ci{B-*6L>k8p>`l-M07P z?fI3RW?I|gJh_tse zMd7YJ=eFu3-)Yjv7;O*xOw(e0RVfJ&hQHBm0^z~+*C#X#r;`$J9g zH=}k zt77C%-MHh=PZK#KdIV&}W?stXEx3YTZJ>R+VG#C))M0a8h%AiS9(YtIr>!$Blq2HD zT#7i<2~X^?vdx_aAPtm3n!NkZ7#!SrF<*?6u0sVi4!-t(f7m_%qCZ&jjQPyuArNid zv%Zu<9wzPHcA_MF?0+dkX@xBaX)|MR2_fb2ZjA8`L2S6LLfP^2_BV7#+;^TGDQ2jQ z_VOhik|u9xERha*V*bkR&J_dhHCrVGuHRH@eO+MUb<2lAymPum;?WUbLv%}gr}fqAB^TG(FJ z>rpRwf_;u2k_Zs&UyO%Gt;oGvZT~Cn(EGF9{=H>YLE)u|>pNn48v)DWyi}ba7b?md zTU=Tuo|urq8v08`->Q=zyl+p}!LFQgp^yS+t3hGlLgV*BbiTZ~Er*1As$iuee*{Hx z>w^Y6W1#@o+V2{Z7BTWmguDh}Bu&nwko1mk89Nl`-=&QM_mG#+@CKpv_)-<``c^0z zDFwllLj?5C*zLKh6vD|I*QLETFz$fmx#gFZpCMLh+E_D(&r4Yjl0Lkh5PFW>JvuR& z;O0_bvcrv_hvgxev2rC)Gg__7*BrmMTJr0meDo8xs^ud%3v>dR{47SOdc?P4yeNX> z17&2#_Ii943AYDxL+F^FklYTuuTW$p`0Vl(LqDpnuhUn2QiZtrbT80+#59=#i)0p7 zn}WT=qM>Eo%hJ$z{F>*``ouqpjsmO&d~|@&kE^(6?4|n7HaafUSB#85cty(<_4lM2 zSn4s}xM8ywXM&(W4T@FggN*wa=x83%6>Q@*TF6z4*owbQ!MlaL!zY|fPw(4fJ+xyy zmGd{9dej*s^KY2hOp&h1Go0-%)vkp3Dq*=XNufJR%xFN=c+&$*%FRKTMiJ& zsy;0?%fMZ}BaP6-iwqbhcJ<_1v;CU%P#))7}2lL#`or~lV;}(-+OL1Q*p#9k>{r0(`a%3 z;q4_5d1$Zn0ulGQGe-;K+=-hMbQj-&l~h13I*gvVdaCH=w;#@8`m=eK)?acgkM$H= zl<=xI^tEsh$y+@pj?j38r=7+J)E(vi7dX8CZG1d0dUBnG2LgRVv^O#X!v;K(G;KUP zs(uw#-;~w!X`G0~!btCsk})PEOYeSr?Dr>mM`Fdc>6IFW`tE@|=K;&SFK0&TNwq+0 z%cA)-pJC$9dS0wu`48cO2dc${W_isrB3oVkyNve+oaW(QD_05(p zK{`olvvC&RWf6j3wTNVEfuO~ZZi6rSqhR&gICqB-PfNU}r`j*TiTRmiTJjWhhpONf zQ7t@ymdDe%3z5Acj#NAIx-x0MCQa@)&AMwop0uiF4XWbfd;bJJ6hV+Pj;FrZT`5u6 zTb{X^nlz&V?iGsvyYoJsICSYmTg?sbL;XO69<@`kTsh>T2pRaW0u=ia+dol=lVypw zA7k>lt4=e>V2~d+oQV33Z5$XYNhdVL-uqa<(v}s2e5dd`#`z3OSo%_D;`{x_g-Wm2 zV_NY)^jX-^xJUlph}RIJf5ow~v@yIFC}zI+X)N5^&ftT?t>;|=mJ%$EZGemg+4nA- zc;=qPPc{hHoMTsm$ydDv$1*_m$di_cbSWO?2ay&egU8))>?S;M^gN? zP6T7OD&a*F2!z<{VMM^XS@Ad!vE2y5F^{2P1Xs@ho(^KOM-J~Lg0okQ?Z2I^AkaV3 zvHt`fi1TK2M!56}u>F^|1_Dw3Q@n|P>$!;1UPZi*i1l7M{9ZVMy^oLWKeq)R1fu>I z`~P5Rgms@EeqJlWxQ!99(0?{R`Lk}qj&>T5NL!0@ugoG r{2u|^C=iJGf7ZKxguojRCi<80E-}D>kA~e$Fd(c37>J|0{(=4<+BWfP delta 44292 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⁣-9wW@!|_SAKD@&#*q9ICkJK^S?BI=G_pDA3Zv3 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 RC|wB Date: Fri, 25 Mar 2022 16:58:46 +0100 Subject: [PATCH 33/43] correction on the contact list --- commandor_page.py | 2 +- contact.xlsx | Bin 50965 -> 49251 bytes main.py | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/commandor_page.py b/commandor_page.py index bb5313e..8aac263 100644 --- a/commandor_page.py +++ b/commandor_page.py @@ -66,7 +66,7 @@ class CommandorPage: if CONFIRMED_MESSAGE in message: # publish the successful message print("url is " + self.page.url) - self.publish_message_to_queue(contact, message, self.page.url) + self.publish_message_to_queue(contact, PublishType.SUCCESS.value, self.page.url) else: print("timeout") self.reset_air_plan_mode() diff --git a/contact.xlsx b/contact.xlsx index 71b635dfccdd14daa1ffd1e81d6da63e9c17b190..e914f8b069483e08ca98415683a05e1c45ee130a 100644 GIT binary patch literal 49251 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%0D`khZz*`L1N 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 JLOXxp{vQBT`Tqa_ diff --git a/main.py b/main.py index cca52dd..13bd17b 100644 --- a/main.py +++ b/main.py @@ -178,7 +178,7 @@ def on_ready_for_otp(e: Event, commandor: CommandorPage): def start_book(): - slot_number = 15 + slot_number = 21 slot_sum = 26 for i in range(slot_number, slot_sum + 1): card_pool.reset() From a7b3cf8943b834ba337f31320d3993fbc7ea5af6 Mon Sep 17 00:00:00 2001 From: Lei PAN Date: Fri, 25 Mar 2022 17:54:34 +0100 Subject: [PATCH 34/43] use phone number to generate static ip --- main.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/main.py b/main.py index 13bd17b..4199901 100644 --- a/main.py +++ b/main.py @@ -178,8 +178,8 @@ def on_ready_for_otp(e: Event, commandor: CommandorPage): def start_book(): - slot_number = 21 - slot_sum = 26 + slot_number = 27 + slot_sum = 27 for i in range(slot_number, slot_sum + 1): card_pool.reset() logger.info("will switch to " + str(i)) @@ -214,7 +214,8 @@ def start_book(): logger.info("contact found for this ccid") signal = modem.modem.signalStrength logger.info("信号强度: " + str(signal)) - PROXY_USERNAME = "panleicim-cc-fr-sid-" + get_random_id_number_for_proxy() + random_id_number = str(modem.phone_number)[1:len(str(modem.phone_number))] + PROXY_USERNAME = "panleicim-cc-fr-sid-" + random_id_number logger.info("proxy_username is " + PROXY_USERNAME) proxy = { "server": params.PROXY_SERVER, From 51bde50d7ad85d845fab33dab9fe6e59de9243d3 Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Fri, 25 Mar 2022 18:04:31 +0100 Subject: [PATCH 35/43] export recent valid profiles --- export_valid_profiles.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/export_valid_profiles.py b/export_valid_profiles.py index 6ec7e9e..451e8f2 100644 --- a/export_valid_profiles.py +++ b/export_valid_profiles.py @@ -19,8 +19,7 @@ def get_random_id_number() -> str: def write_the_valid_profiles_to_excel(): - day_list = ['2022-03-04', '2022-03-07', '2022-03-08', '2022-03-09', '2022-03-10', '2022-03-11', '2022-03-14', - '2022-03-15', '2022-03-16'] + day_list = ['2022-03-24','2022-03-25'] collection = [] for day in day_list: @@ -36,7 +35,7 @@ def write_the_valid_profiles_to_excel(): contact = ContactPojo(reserve_pojo.phone, passport_number=get_random_id_number(), last_name=reserve_pojo.lastName, first_name=reserve_pojo.firstName, ccid="", mail=reserve_pojo.email, position=0) - seed = 8 # number of characters in the string. + # seed = 8 # number of characters in the string. # call random.choices() string module to find the string in Uppercase + numeric data. # contact.passport = get_random_id_number() # if contact.passport == None or len(contact.passport) == 0: From 892a93bd92398791da932aade40c426c887af9c1 Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Fri, 25 Mar 2022 18:25:36 +0100 Subject: [PATCH 36/43] filter the disabled contact --- contact.xlsx | Bin 49251 -> 40988 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/contact.xlsx b/contact.xlsx index e914f8b069483e08ca98415683a05e1c45ee130a..9ed34e79b9d8b90f416a384cdaecff2f4f5f5a9d 100644 GIT binary patch literal 40988 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 literal 49251 zcmeFYW0R)Av+nz}ZQHhO+qP}@v~8Qywr$()X-wO;yU+aBIwxYE*y|hYT`#KQj;I%R zRpc)->#9mc84yrZ05|{=000mHcB$I*Tz~)oJa7O21po=GBjRB1YG&_hpz7sl=AuXM zX=h7V2ntO38vy)o{{LT8vaI3&$`Uk!0Syj3WMT^%M5A;=Cm_YbXpX@!4 zY(a4z)~)LoZh@>D=9zx!E}Xzg0b*&pc4%#Tq{+M2Dv=W<-xenc=-*Zgeor=o;~d>Z zF=F1hT3YyVtgrSc+5{yf$caYG4I+XYSbgseer|VoH5e2JFRrvy3U*o>m4kr21B8u1 z5M${VH8Be=<9@~aYsc`yeX#^L|D=b+A7Xx@#9avNN4S0mmYtmGB$>k70!CZFd0&`h z3&V48kOX^21*M$a18z1xI8X8Af*vFzk#}F|FNuq4X8E9mBA|PPi!SbcxsHjaI{|AHlzbw5vNlpfY2{G&@=!a;!hi8+Tc+r+Y>{QP53y3N6%a9{8p}6zwMO?_W zpcUUcr_LkKEAz>`vBoT`k>5LdpiVDva@*XrQ~2Bv2Eo=)e}oB z^-;n46Mt0oeqjhb*-rqbn}qsE5MPI`6{lvZGp6>VG(shrZt4+U*bcVh4C~0OBqWau zNFo1g_ggnRhg_Z2l()k~2?qo1!ZM%vd}D$+~c=PPO#?gVlfvK|E)}MpA*JzW`r_LdxnX^7p4Y2lUa>94&>Rt zjqm?<;eSWwFVq+1e~?)Q0RXT8kU*Zc4F64yhl8_?v4exne*)b9M-b4zDEDvf|JkiO zdCq!>5q9(@xF>kQ*D1-~EQPx#MyO8b1wgK}KR?W#_Dta*kSx+EI6+^45ls5&D==U7 zwO4jCi~(+)tCm1U1=(CurM*e{%Gtxu8%(&`x|rKkZYUTe;^g1vKP2z+DO&nOS{OwJ z7WU_+xOma9j>-w&E@zqkG0OxC`^?R26>gGOu8sL~CBV3pDlRq1v6`JwJ~)2%$EK^( zUdG4i$Ra+iPIKG=W7ZUrE9!inkS0T$bZmk=a+t7g=#V39BHgeNXUJ5Bag)tx{4`*N zCp<&Av)X!9KgdfPEi9Zq%nuqi_9^M>AnO@d0gB<;glf!VBRpr@_zvcOvY$lY*K8XYlHFB2J0I};7tM~S=x5BQ3b8qsa77&221SMN3B-5(Xq;q94AfU4b27|dz*Hnk|2skXm-s3^cc@MaT3BBX&NHZn@G!C zI1YlRPM5rf=u}rcZBznFdzw@tilU8fsdgi&kT^ps4BL<2!MJMZUr82*Wcty~h}U+9 zyh`-}8~Ns8R6=k#l175oHs^DxYN33RWD)Cc(u_D|{DAvkls#+np z9bvDILSmzwwPtkicLS14({7&&7Bs+Y3)(G2v zjF(-(N>w*t6a%}(3fDxKXdw;7B~oiot@B9MB2EahH)oBlhzzt|jU`SeH4JOB2w@xU z4j`=*n_w0&J!)Zk+*302$Q|Xxoi#T+_`_}Gu<5)^Rw3HC2hYcUbVlox4KIE<9%~Ku znxPf&u@9kTBk9)SJ+JTLaj(2VHCO&YNdscu+Blm zS?cou6wRP>F0t!;hU?7I-qr@M&Tgt9>}BZ;9_!W*vy(DzYt_8Tr)Q35FCn$bu@{HU zmYcUKm}IHh)A|#p-IE$UH-&g_A{wyCw8PfnkvTR1nLcSXjVIOxoD zpCbqelbs@7>VupznxB`tne>huDKSr3&55%~|KddfzPHb_3|cjDnDYT|`gGGH3u(2f z1xay3^84S_l;J-~%BZ3PRgw}7gfF{ohDAenp6t|;v%c}kz+3h#(y5OM*lp>sJ}zV} zM8?Kdxr_Yly-=*eQIFO$As!OzlLQBI1i85JQzpM4GTZ<{DI6z~c*HO})t>;DH*o>#v=nC#76oEZxF`tvK*VI3%X% zUR@Lg>82Zl0N_kTkG53e(c~mSd%Vb<2U&3%i%r+@Cy00$9dR+Z{LA#X$LcLGD8uyH zm3}0XcndujlX4nryiFgohx^SY?ma=ot0D0_o>kSbcvs1s94iRhM^Q@NldEjA6QPsP zci}6l^~x5jq@lu5X3CLV$2dyATVM4@k8vRa`Nzp`lFDcK;dOXWrLi6_%h`p2wO=TK zsG=lA1nYd^p=?;vhfM>9l}vnsK*gWQY0*Jwk2ic(Dodm6r~|Zh&^YDs7laAqV=cXz ziDO1P<;4ZE&(HU}tx8_VlK#9(Qu^;^kVk{FFC~3|e!fhpdEQMOtm= zKBv5C4Dq$CM%Na@^W{bzv%0dz9p5O~&=K=&^tacb#{7Dr@n?tH>qJbnKB6GZy46&j z=SeE-mC%HKiIjwL*)=GnO-(ot8lNV`6&ouTN~EFYO~aru2;XrBIVdL@r{e?_daXZ1 zC!`^W#YNqwW0ph4rs}#(11lo}7Tk+fhy9M8GJs#DnbM(rVUND)p>e12L$++VrJRR~ zaj7s|&afTrs1K>W=*t~Yox1LiRk{(=OilDITsOAgr7Wbw^I;J>NC^hzrgGf55b{ht z2l_a#_;@T|UC=E2Gb1aZ_PC6TzVw1~k6vXT!Cf8WdJrq)uH9zY43F*RDBbP%sI%NT zgKM4TWDwS3zNVhOfuj#uEj#^uSd)tsoauRX81B}kR|O&JQa5Z8uoLtwq2uKSx9~N`f7}-Ix@f>D zx&2wh?lF3bNwe{%qH1K(!K!1)vbtZkAP^WP2BOVytvo`^Smkt0Tj7cmhZR7wWc418 zS8bjW)0}cZIi*qd3(+R#qxaGcV3~WP#%E#>YXc)lT^3><-a2Y6zGH?tZOUAd`UQ+8 zji>jL<(_P3A>o;sDC1nG7`?q?tb&}OP8$3p5-^(_FdowKM_s1RLc~+*ifM~SzTci$ zrLgiu0d7|A4Rv%g_)X1ZG^yjOczjGxT3IDT4#B#7a3bf)dhK!7r|UbCz!Nj1nXUGk zI;{*^B2s#}i9FPU;bFmya-OAcXT*DmvQ3s)@QrO7cyYfc1m7KZ%akTr*>l^+A7I}i zjzPyrZ`=nc<4otU%&|l{3AWCn*!3tU)Tn}HVh!Q%AYP`@pfi~Tpv9O%Ew3PR1JaNi zmiU`I7~>fjWKFtb-)NAxk>q`=dx&9(zhRtYi`3$_H{x}jCP>EHXf=c??fJwe2G0>);iK$6jQPVOyCyj!cXWRtPDKg6Ja=6%(seDAk9KFrrd1 z?5%kq`2YB*YIFa(f3M)`PS$plqDwVPh-ZyjOG_u4xkhr_(9Kwyfs-vl`hngHfZ;aSAvX*|I z=tZ=Qstu1%!XzaLfdKSM_8vTTII6y>jR{BpD22KWY0?MP_Sp{GVv6*OsW0p^C`z=N z^N5C2{VwZ+_6J~ajbl3WdM<iyu0v|xpd!X>9j zf6OMsb=N^#L|S!L>DEzGnTZE^dFO6DRbS690TqWtV+SuJM24~ByI=6bAHN(qr{`SF ze4%N^R)AVjPm!|O-)5qH5hKrHk%Hw^&4XRZ!`d7b-hX!vTQQSkUZ9o|s5Mtzy-6z% zhYMkDXB+rxU#4!i8xEq&9Lz3*$-miUY}^q|w2qM}~^!|a0$!AjDzm9xRM z@Jru7Byu6dA0EyOZZEx+U@TptOdkZ=CeI?CJQYsoH43dckAUB7e#^wTt6s|?&M=k_ z^W5ry#Y7Pr$_&iM@0dI5-eyrEq)`)yh(-Y7=(>njNtf7(ne=&C&`1$%val(x$q?ZK zHZ_#C__wR_`AChmlb(f@an)sE{LRkJ&v((_W-?f;p+ZwFssNtj&stZw0srU6lEV?E zB!Zc&!A1{0C}&WKa@})5LU5Qwo6C{Cg+<#Qr?@_&`Zas;X|hj)Zr&%!^F`Tb1wTF4 zOx^oIak9Vsw^lxDZT#uu(z~;^|B=%}B*AyzC!smha*3|4&m_o-TOcf&m!NQW#Ou|& z0*2k+zO?Y^dJJ0co>C90bYk6RFMlfeMmaAU&@l`K7Ebpt1G|Cp=-xi;T&@F}IqRob zrM{Ib#IB?DBB!Zq{kTz+IVReJdx)d=C#dwg`&P_Z+39O9^Z_(Fni#tN9or4vVxPlX zGc1I9wad5_7JAzyOE0`3Ten~BJLfOl?o&;2Hd_~QwYGEW^_y@ER&d*_4;T7CfB8>X z$&utHHB*t4b%-QywM;_v#f5itM-cugLH~nGChsHW3!w)9G|B(~)c@BdTN*i=nX0%t zTiILumuF7#)$-UMU%YzgvDyCFUAfV#@#3sf@Fy^*CEpCVyH%!1L`H;!Vg>B4?c}!G zD3emJsN|cZmrRe3N8s^*e|-s@=y`e^N?{K#`2Q#hQ2B4&jYoeGYJa`NpJ<&ZoWysr znk3E*a_;|p744o8{5;J4eDwL3S-FSz#V-DQH_SGE`G3FDJgxeSEh^mQNxaT5%e&JK z{m7~Nmwbe<21O?Wu&6IgURiueDP5BC3_ z{f=CZ`}xv%p4;({{Q0?S`oe}G7BIEyj8CrqbfKk%oDz8K?q~RcjaJY^r#KvN!ZuA% zdOHD&zRt3d_ltw$imIdvQ~HM4;idk2sw|c#=r~rtv!z>lohYqZZ`lN?7ty7~FX~Jvy+&KEnf7RSsH=1qNeu8rVX~s>`pJfyvvFvtLP$bKg}S!jz0QS)1@u$(NqMT z4!HZ-H}+-eU`2JRl{S5xO9_PJJv67!9+TQWgPiLxaMWk-tjW8wo(tQM^7OrfxUH89PG}PQqp|{->7Av(X$#F0@^f$7V#hJ8Lk+lFnuYykO?|JSjz4bVj)3|R)xZ&&68QNM ze7Yr~n=Jx(vC>ty08a`w#9#QR1KThN<&JoqdY37f!?qVE?s9w7wPX+6NRQ8}Hfmx` zs_FLZa9Tc6=Nm>Er9Dc7hcLmIGN_s!dz*O4n8OFhjjn!1h<$~yBY{H2^6nEwe6E_u zZn#T}Xd)DA=IM9{dknBkZEesjvMW?z)jA~?pVz6E?#N}lQ<^k?8z4Q8{WXA>x51Tm za$&nGLEE7l?NNv+ZYw#`ld=S`QeN=iw`!nTFCbiJ58jK z3R!2%J1Ey+J>M8a-CY%;3aAopf%Fk>a`ZA+#%s$880_KD&M35dJ%?=zi*`60QuZc@ zC%sw-p44lbl6C=B*-<8j2BI(u-}{*DZZDuOl3s*TyIB41SD%+>bWK#!C53D%t0AOPh) zo!{JgPEE)5NTHJMFu|RjEgCSRqm8!r8<&oEAnGqIiWZ$3M*fJjiID5fZgMJY(c&_J zT@TF$y7LZ3FxLgcQa6tNt)JIo#<7I@V?p`k$bTD03a%S~F=ZY#L8bNHN>}p%y`ogboD-s(lv8k@D zKvGM>M{iYC3_#yz4`=6kqJl5l1XCiLC-$c3rA5o=yW~?3f@=x3gCJu`?;F4gH63LQ z3*yST{3^FWQqwfHMw;^i;_Lhsf~}Ha)d38&AOg3n*8Cm{@#^j%h#V%2^RglEcxTpZ1qk`;03dKa}p4DR}S{`3|orWhGK(42}I z&JW?vYtFh4JuUJYZL+y@U;~IWu*o^1Z1bc`?Kb-N5l?Jzw#eNh^oA?^b(ZX)O-5xj zj(zf)xtHI>g}r+E;H%ufD5Ixhp5=3*DKf)HwKy zcBkU#FKmvA9$p&pl?Zq<|ZKo0f+by)Pho#~2F2KG*&ky33+5ICMKa zLC(1z#vQ6%C3yw$GY1v`lG2e@iKrx==fb^AW{ry}aIV#_U+ogI?#vBakX>6oe0m&C zyR&S9(x252yC7F`vFnZG9|V5mz)$z(UP=(?r^xew)eDdA=mz)4{}O~^o* zS8FK>RfwX@=Qbe)k(Pu%DuI01rD(K9iS?5fT!@1BeesjPX|)YXp%B>`+H~8~X%rnq zQj!NVjs^4^`VXRJ`k2;dboLirABiz>g(ICrn_4!nPt&8j)i&aA|IpbCyB(o}ObFCb zYF)~b_rV$*t6^Y8Dai#$-WD^RHO{(mkIOj|93gcv(PlUVTCa||^O5upZ=LZ()bm%3ec=jk%TeXgFu+^uUx z16U|9oRVwg!oeQZ+PM>@XD2F<-~u2a5ML^z4a5Lxg#`&+Q>~-0Bdg}L{jV7vKblQ) zS&Jj6I(^A?Vs}fyV4RS89xnY>Rn>4QYCI6;0Krxd>!_Y}gX;{tTXydYYR$f#-8oP= zUDt~w?T|Ik@Q~Nkmey*lma7#qz@jEAju2(?*GAdJK?QqIDmigMsm7odiJ(P3zQ!4Y z^2Cl}2mC2H%OP=5IngR%0P9`+NoOPl#9BHywxa;MZDzXv**w`Qm%6 z98{RxA%mCRsv2%e2 z%LIL1cik1=nq_takTiT?<;V=R8CEwn3UlLzjqvWg$w6xwJA!*|Pcz6~4^pTgBZoxM zq7S)6R)Li&%796k0pghJTv|-FyE(ehUS=LU7aKj9#JV=wLgihZn<#{q!ZsB!b`P~^ zTstJwz0%g0l3AO9;!Jx||G+;~r6l^o*L%@3KmtN^r`>S(BwMeZufT}SK*9&zpHZ0 z+3)IFnc{*6jbec(-P6NWr&cTm#a`W`iakls^cPAOfiX@OzMiU=L|hY^mx}gJ%(Y7M zMaQJd0OgJ2JKCoI#RKyxCMOblc%nC0yIm{f1t_(_!bXT*N$abFgBk--Cnw7dZrdAN z)PSSIrArWvYivk!x_0WBa*4qT4o0i8_Sx_G5;VQ8J>05EMy*Uho{z0*BaNH#jISA)cr1_2|^{pAsrkt=+< z>RWY*v7@CqRg_en@CUlOsa>^~kZh-%utZR5_tlPWH*0a9)UqY@A&gsTM#;A}H>e++ zwR`NtL)$pjRLt>=8SEVsU7=kb=ZcMMsWQQldbE|jrs6OINWfa*;8?AtH$_=IjrNY9 z^hq<6Eo2rAoA*pA><^M{SzM1IgFZ>vXk>hXB?1?h_N9+vJX_=b zhn)xUZ-L*Dp)*Wq$L}erL9d-#`4#zI@lj>?ePx>r|@drZJ@W1_9oiA!-N|5 z)Qai+zfs=$+N#mio=VtcP0CqSyIYhq$VCF?dQwfFkJ_jx^PNJfarYOY9#Y^Tj)$In6ru z6!7PVnB7C4On?#KvIy1=>7-rGLj=k!a;0E(<~KN4`h@6u@j})l*vl8;Had^%hY?7* zTU8sklWwQnP~T0i5wlM0HIE7rHjEy4v(Rsm7(o)fqSsHNEhmDiDx&r}bDSF@c1Szj z`zV#i>;ifuD|73D#2KNqjHJ*)q!bJq)uh3F2+Le0+LE+gSD6(w9bh}rZc>{kJiHl6>MYApAn67|mP&5HgApP|a>3QU$$d$nh$gOkscp zEIE{V&G$edPDpufISLvp0+`&|5tN^laC8w6td>e6uWM@|J-;cIh!#JHY=dh}FPD(G zTF{w&H7s8aYh9>`m;23IFECihJ3~5uh$?)9K z54VJC{yUbIdBhJ z1FU$8w;XBVvj*7iB<5YU3e0){7||7iRZ1tlLiT}z5jL%Qks$x6BAGyToD`5X4m8kQ+aP>SLNmq?z99I-+F9=RZl%cjy zo5e(wgjSlPYos`_T=hna98@7$ltdwKFT053#&^hi?USYIS-mBy@lx04+c?Z)%D$oq z=IT35a_fN46yt;}BQCVMpayv-7}|ROy@TNZ7Vg9taaoN9r0{fJ9=uH0yVe+ixLD0=r!!BtFrc&{8#wPeK3wm4uffAtm;Ekf}vM z$|+WyfGH#wjmhxj8{hSc$2q<3NEK9pWr*fVu_y4=b87@sEoWNzU^G{48>kr|hL~a6 z0(FAHUCer@6Do)uMFlHRebMB;;e@}HF9U;s=aOqAIFc~4Q&S`UtZl%!pfaN@AMl%& ziyf!@vWjHvr@ZnR8MR~}oGEG|2o4c^vritaBs$X+KOGjMc$RMkS`j2A&0$zCxRxmG ztCiO$s6l+E=meiA9`ob|)pmG+u271f6fh$+uabISAf_4Yj<{+sK)j~-NEML)QzAro zc|KZ-sZcmqoN6LHp^R#E)bD_PHzQ(K(U&0tUh0l-6->oyX+v)~*Ku>4Fxdt=h-0v^ z7uQ*m{;jb53DkqlkW;s@ol#IB-&Pv13cio4uejg3rO6S;+UdBkIKOVPR&rfx- zlYm>#qqVgr`XW7vT%fO`x+yuk+%g|0*(8Ip6|A7&`%{Q}Ap>`SLy3t3i4+@|v`37H zLz_((%QYg%v}}}^-8sj<#~$L8tB_BvkE2v=3<)zNf&FY6}z>xyXxr zufAVq>908wbAh2m2^OWHAJgHy38vMn6qMi4<>c-~UrDjE+R%3M=`i|&SNJSOvH#RP zstN8JM%r&E^{tR?2TTN!)clietuP(10*Yj;IIS^O?ncIu*G9efp}5i^u{Dod;&n;m-JSrH+&c!b|z`JXj*rKu^Z{j1G8! zXOpmLhXm|SR1IPkG6wCQAVf`lDE|O-tX(7SI-m}T>F*F3#J4d-NdV3#+%Am~M=NZy z%!p)jqj}^?pi4mv2_eH|@w|=rClx40C}b^gm^Is4ZGoME!b&1p|TGT2;H7KF3oS;1DsZHaMj11-EQ6jxRuMHKuiTknNjdscFjU6KTgJbP%N2F z?UymikSQqYGVmkF|8Aw-2!G;v<7g9laI}pf2i*=Zxa77q6rS{jAI+VLujqU<3$&*s*ySpH{!%1qA7}xC7$ZBtCv4Hsnnl;5T#%-M!kJHp?U0Hp7!UM=|$pp5j$TCq$7p_@fIx=oTNi7-BIwE!Y)k3VGZk6{3kMAqRa$|s4ZM* zJwsi2CjdZ&{6Wr5&tE7MDIqwCY4S;?b^{=z)GZwrec0Lh0Hqa;0k7K`Kh;VSF4t96 zog8(C!iHxqI&emU1imd44ZuVSd5LIM*7Z&SD`Z3vIX@>M!6YN*$_wEdMUg?C2rxIq zB-Ii`W$nW5_IVQ>;*A2e=3ySLFE_3sW1pTK$zYH=(t|1aW=uKtZU4eGgmS&XhtHRm zLCP0;Q|Pq7=Z^baZZ_qH$c*d|vLB9M_1<1Za}@O=5raWH%jq&HHb^aB!RMu_TcKq2EW3YKU6 z=A5-$t5%&IecUG4TfYoWexsG~IeTT9y@26NPlXecKK$Q2+EOHNtNz{2MwxEmf$6I< z-nN{$w=L7rU)i)p!LDGJkT#?=oP&(wU+*svUs`GVrr`s+v5-Rc;hs%b?he;Iu}=ha7d1t^HbH0ix~@L#?G)(5)keVNZ}LJC zgVfXh*Vn70X=(gwYJd5}?rn)!q7B^s@Bf#Pt^?enmcU z0aAoLkdwM9BhNjvYm3fZyG#W=a0_u;$fO_kpmU@wK!bYcBe}z`+xFvQC5mzgi!}~|!`C6s+4v%yHwxuB z09lN;M!B2i*QfisC&tWHLRUbYcMPu(-S5M?b8-3OaF?4T-VcRg@n*pzS)s48R0vn? zbCT7|=GD0=jB~HOu_4SJ>|DYwReU9jdh?5ur~9jA3KmTA>WFoiU zFB+e+c<>5zUoU-t2?^?%F8H$RKt!*fz#cj5)J+(GhE?|*tL)n{(~wzOg)DQ0uLDi~ z#>VOeQuZ>zu9L8E4Hln;hYAkVJ`plL#EcA%>$X1j-25 zTz?Cjt#RXVz!mo;$wZXj;}7w|VcL-Zc>apqB+_Be)qmvuMXb>oZI6QQmPsf+FXQq- zG-h>Y-;1YL#mALm#wKn6++~c8D1f#wvfFT%0>?9VF_Xwy7o`pr9td-OYE#$iVvfHc zhDCJt7xz^?>fxj9oIBWF&z=4oITW_F(84L^+ZXYRh5#hu&09b+J9Hq@=%;C}@FV2S zk~Eq+baRALo-TjR*BG z$>)JJoAk)!!lgfmOri9zH^il8hgPp{8@9u@32UjI2C;Bx`cndVCGY2(tPE{PY1|Ga zNGVQRAHh&3VIgpP#H|w7ZbQ^^KMnzWK0H+~iYFm60XPg&hyoJdk8}?->NMM|{A_-H z#Bga)9-t#w8{(2iq2-nY(8fQM+A^z7rNPi4|gieuJ>8)H3d-;p_eUsUDu3Li}U-@%8urqZ;%7a5Vl<6U|)SPGAqZYOWD!0Di z_iWM@185XR&ATOd)owuZ0&ZMgjeyr|sn5s;CRhW^I`8ayg|gwv*jU*@_ODKVo}4KJ zuR|dQ$;I>X@%gU-E8ZQ2IIxDOrq}V#cK*V?&PoR(BLwfE#6DdHZcyp+DW?0PfKQN{>?Y>yeDSy?h4_$rP@R-`gZi5 zd;ayDdJ(Ml(K*Nmpb}VeMA(Bp|vKKjR+mP-Um1dIKIMX^ddT&uQu)NmC=V*0Hh%Za{k)L;g;-gw%*UeLj{T) z`-jmYp%Kh;PztI|0Sm=`s`-sC$3bw}!&z=P^KulT_bDty*TA=>*%yA~$Uf);_c{rTM`}f& z`LDYS{dX9aUu0XOI2#(_h+#19 zCux#e3P*qQiCbV2EcBON6N{pUE{>w!F zwrtJZWb>_Be^fD>b{okfx*HjbF3Zk;tDengPq-_y_QYnAkpgmt!6c(@wf%4;Qca+3 z88%AvRv&h-N$>s);+F-+2Nj(Qmayr_>BmPeeELdOFQQIRVS3!sznZi5sbashp zli1vB3=7K}&qXhQ5DaQ$iihT7@w@*0VA*(y>_Y=JR$)b|KA4owPQS}8_`8H(05xbG zhk$l-moo{m{?Pld__IY}jt>@On63qJcYrRBLiM`&qA%hxbSOoYtk_13)e0jxAU?%; zw-BL!r}?7AhOalc21vdIPE?PojoI}7iiy0=*IDxJy`z%|pC1p#e#a$o>J>-@#@o)4 zGjD@HTS5}$G_*z(9Rt=Ml6?>^z^QaBwi zOdL}!mYRz8BKJSt6D>9Y8P%^DmygM)6I{lve?-08&k&m68q@K45YMaB%M4f1MO&1_T15?}HytcA`7bRwl@&D#nHc2o<#TXNv z+3YN+ij}yi5ux?~oxz_2b^MlUi9pHiiD9}@B67kQ4I~XZwfR==>#{G}ZXp+q2<2w*&rKq2*bv;j+%0s}(Lo2?kxC2{-b*^pFoC>g&O83b~hR<1z|Ay+T zygI9z6(v|`4Fx|va0pndb9Iyxv+K$wCyQsAg;GS!ktiwoHP#P0)oO005`D<~3n`eI zD14IT@@YfCVa{Hz4>Ua_pe?W;|GG9xGD}upz~hvn!+vXXjtXWSyB}8*D%pyfb+j4( zGERgR+0u$X5(tbsbmeL*K36_CrxjC1DYTXaq0xYH>yET?zr$!zLf3#hEED%uq>o5G+d((dc=a1hte_-2rVxI$H zh-g%ffd!gcE4^0T6}k990_}QBjtOzSzN+1YLGI{$y9SgkU@ok7MkJ4sG(=KrK$_7o$Mii7T%T0*lGb0V0S! zHQ$n`SFTm^7<0P22-CSd|Cz#y(MhktvpUBLoGALbmy*6l#mLtk%x$eOXE`~<5l)1w z$)3h+tmw|-gRNvA4+}J-HG}EHh1ldfCbXECC(HPa zCJyKmMR|<;V@7|1_U_6OC^bb&VhyOYa}s{IGOf5m?HIx?I^pKe-rh|(V5lAPD`5`2mOZXIF3!L|SVTbms|ZqTAzmZ5JEOr|#dluFhZW_05pye?tFGW8zK^mU zw@rpJ*CvE})`(B1t=s%kZhvJ}R&yRo;G4^wY$TItDDR|^$&da1>DzsAf%5qiBZ!x= z8UaM>>h4lq+mRdj3s$2=L3~jg(vQVktB^Jke*#A{mba#n?gB@|-U*oLsO2tRS-fwj z**j3+l#rJq=U$N|MnaVdypMC9h1w9a2)mw_=?>ax~c~6cL>ibZtLn2`z#(kgKXp~jj@ihDjJMo zK11@eK`-VbnrW)1NAj%UGXg?Q&o!gG7vzDjv59_Kl@qs=9_;2=8Cf*xZ)8b`5$9{<5JZ6jrv-A{!`(S z2+jq1U8nc>YEbuW5)lkw#7&j(`V5^D_}e);kMQ6h=w!-(w23P{ECe{=+Ng|F4aviC z14Y09)|#`wk2+0th#mJb?z3$7x~jG;aDZMdZ!>GRMJmjK+6$2TyZQZA&1Rq5D)C(QdTBVaB+YUFLZ%oX8DvQqTS*By zfQPt-nX%Iid=r7RQK7<-^S?ZM0TG6b0bVu<#r?JbyU>V*&CUFN>t&$g-`ca?EXUVX zYy6eP#f)Dq#pUMO^a}9JKixZ6DV6`JMv(K6CU zBPly1s?nGsruGdtst8o*r|tLn{HKp82T|o?{3G#F)TH^5$0~!XzzRNB6|aErQAM*q zslNW2wdcarYdLD^#lS+S?p7#MlNcmslKsv}0-2xA5bTY@mFotrrW8<{yrRpk2WCJy z7*djIT3uqy2fUXvsf7DgM}5#R zF(BeiPq5SSQ@M$A`+vyi5aZ~@z`On#TV>iH*ki!+8xjLH0wMRa+gI^+I|lc`d9j=- zz0nmYB*tlqc7QO72)jhl`h`j!H1-D=+EG@c`Xe^@!jLJ3nmCJ+{Oq{ViM>54<2^tL zKx!K0j37m~;I(feiJZ0fBVb{X9K;A4vQU+x|NA!~BpZ*IN1jj(cC$cpVqw{foQROEH2IbT&ycOp-MDU9ud zTR$gHHQKh@ZRA>ZEQKa8AP2`HlrmsQ=p`Qn?tTFW64J^9O*NZsN<+8W&B|=-vDyYJ zO#SD%3yU4y5F3|89&e@f-#@Z|xLP1sySfmuMNq3wiRDmJNcId8*Y8MC|GNV zxiS~EU2tzKscK)D-?7F`w*(a_GCnDfCzHZGaw=IZTBc4igRljzD7KNV{IF|$u`_sE z3EU(TepX!nkA*~zzvB{f|JBlFk^=yk|NUzHKlQXOmS$$IE)4%Qu>7Z{C?|QxVUrMX zY=`2?U$A@ZRikM*N=2-u^4TtH^(u4MB?fpDET=f@x$j2Syi8fYP#beL=XERh?eF<_ zF&bBZ+hQ}BTww;XWoU(I7tPtlT-l!>Y=A<-d}k8- zUk@-7dDh<@(XtS9-qt2;FRxY}({AXVXz*4ei=25ZGiEY#A%lMh8Qti>c(E63EWfaf zg`DEwy2Rb>i>;hs&vrmkkm;h*^=xQ&sH;Cx4s{cfM-un5V~qyC z)kx_=*=Cpdg_(IyeDuDP=&&$Q&N{!d8Kq`vaSt5>F;w3>Qj)qNQ}qr1P#8Txv47I* zJT_9F<-h*046$LAdZHJh2eG|>FFsW!c@BxF4GZfn%IVv(PjF1GR{j2MfE;%nEC()R zANvO(4g(gIWGE1rNix_`7ycITub`1h;{RdotD~y=y0z&>>23rL(%qfXB}jK8DcvcJ zNOy^J2@+D$-6`GO-F*At@4fFG_kKCX_XqAh)}HH`b3QZH8s}`+k#B{4n~Gq9d739M zo)r+(s{Ld06-neB1KqMgg+Ym$(z)L4z!s~_mOH=VG4=9mCoi}LYyQmM5QBEmn{~OG z&cqHKcA?-)H@Jcbi`aaJL=>zsKD!G%);EL@&oA+Q`6n`Y-j)D3hCmxWBvnOVzlGj-M#_jmVphnFnY zra$Mi_ABO%6Md}(O@1bEU8>UUJ7-;36(wQ!S|KfCc^_{MeKxCmTH2q^5|r?!EA|aI zHc~^EM3qpc!-|UUecV!~d#&Mnf*XShV)gu*1%nwt+ZJh{P)YUyqZDBphA@DkE!sfQ zo{SqK9bp&-H{k4C@hP_B7i*YPzwR8Z2ajVvak`PjFs;#~Hy#Ibu9-zU{Or4hB2+$F z<#q-B#aW0Eh5sYwj|*vog8Q0`3rCZJR|h5%!wM>DjgWl!$`%EjG6PBrh{1N>#1Z*U zKN&;w^P$Tje1~BR;AsmmcvngB0n-Md7KSfCpv`|p+Ma?NQwO1coYFr-ZC~b+rCE;e z=UD8W`o_T<$s7sPNCX$rRl;z-oZ+Z=kReT`t&N{KO#otByn!S$%?C7kM0FVJ0Mxcb z1F1?HZZsl91sL-HWD!k|Hh6Rbi%0N6PgO{kQD}y_n?*Eatrr4{A9uE`Ht96Aw?8M$isQh!}n7?pLK?ch%3{#_GD> zx16|T7;I=u8bZ{n*BmiJD^BlYrJP5Ki|@l7lov7I|NT=fW?Il_by2zIs32e9Dt1(V zzo-#zE%{zSP2%rgQH#C4K=k~5F@jg*;7|>TULAe{dr5IQUAF|4yxKp1MHn+>8q0>y zz;PANf9vjBl1NM%Gg|O7(wTRdyg^(x8i(K8!yJ_COE>Xo#8Cq5Oh# zq>I^I)Lbt~0eh4vqr5Pwr^A-85XWo^X;k);BOpw|^^I!K2W!hHdq*xuobHsLKO}i! zj~cRaDpQ&(B}EN`7c{0Is;1is@Vgd1rW=l!U9}USZ`u|RS*Op>%%Xs6%vv{>=CXne_LD)g$U1a2cFLF+rJ+jeK-}_q0T+ zTn<0QMg0EN&MlvXj-Dj@Ti>v)saMZRUi)*R#2bGK79dF#PO6K}=Zt!Uu&roPhvS;2 z5p$l5Dzjz}dyr9g1TI$DEKqx9CIpz?mWMP_b|(2 zPnYyU%8h;^AQNGLQ;R77+minGyp?}1>@TOSG)=TBLX%_tK3(j5UTxRQzBEtO+s~#Z z){)CVZExh`Ux|e`_k3=qr{=WG-LInq|Gg+!^7Ls@h~@tSmR7mjLRG)5)gthy}vC@z%<mty{} zhdxCyq;LlV2R@Yp$1MDB$$dFf;V-!#+JJ)MBSgXj=GWd;TGusWtj~`;Vw;JXZv+>yBJ{p1Or8I3*&1(J!DzZ`~#Wu~` z_sP*YjzM%o((xmzO*L}Rf#LOO$0OG$|Mx7>3Y`z%K-4zXf|9NpSRxn9CttMTsl6@B zNZsTrTIh&y;g>{|S!x*{Dp-CjrX@$vGz>k&(I@>`yImU}^L=eQua044jmpi z;FWNocH@foZLqKX~-%1?ll#9_vxoZ)E{=mp(riH-es!A0p>(@ zhvIC7kk51691x6DyL?z#z2X@daZ;(k+aw5fgNuaxwaR z_c;q7c_z^p?|K`X1;{coLnT}Ibw_4XqIwR4B#nBk=D3CJ zo#nSC@t?nc-yXR>SI6wRn14D$8m6n^7?_BpGN9t@FSowh-!!~Rpb|uwM~K3)s)Zl1 zP0A8_ul(!+S9s65sofecSXv=+hCLF1>xJAJn(K&{h%-e-r&y zkeXIsu5^vqDJ9l?|th|w(Gwrr%(uvONHwMp` zbN29Bajvn-+db6!p9`r!U2w&=!)dYX*c+u6MD#sG z&Xd}sWigF2)sVrHj><_E?+CpF`Q@K<-TCqb?ynCCAwmYaYPvt|31{~_W|x@>x-a+# zVU0%)j_pXWsU##}-W4trl*&0LcSVw=g!AhAJe)q>kId9%Ew}jG&ImmnC;2|!6?xrl z_6W5;K1w~z`05Kjp7o5}#O(VnR%H3yJ}wLSJgwV3-#=FPYQhP5Kc3x7wLg2AJlxS5 zQC>(zK5g%>JKmn%0>|NaJvDdpFSE=jX6^sB+lQdmbs9(hDhU4zb?p=0niQN^6MCmB zim(nm+FAygs7ipFAj&CaAh{sI8Xp{4IdrpT&^H*CmdZf=3qUp<@$V?asYmY11Dr*X zP*QxDQ>}l*5gaH&zr>R*y%KxqH3&5ixQT`g-G>nUM&Ky|KnuMQ`a%-Q2kE}+U)yRT&lN2q!v`Nlo;%Ey6IfWC@{BwUwYuGPEW(vj(?WBk z<>d#?X&q-V(j0X@CSpA;X`)-B`5a5;+m?nUCvKnDZ(!x|a3yvT1aU|0EfikqB_}$N z%w!k^Z7Vq6mx_c=NRMRn9|v3FZ#$gQN_rmwuVV;tFqDlnPAbd#^*g|7saSX~SS}F+Jnp>(th2J-CO{x|Gj3&}suh+HIBJmbAnXJ*u6)B}$)#c;{?l0Co z*qei?h^de0Q#lao_9SCS=+j=*=k*bJkd&rzAUF^R7~zBcxutm}2t03^Pruk%A9rgF z0~;ie8d=HjHlP`3FE|9b)8-uX&mf6FeY6$Y8oS5E3U52WP(6t}Fjqy&5u?~LEXk}W zZ(7rWw_HjV>2#ak`HhF#1gpZ5udT>n)`WwAmI_|MWbBTz`~Y`;w3Y`u@k}07u!9V7 z7|B#kr0QOwGka?E{@B-c;OWLE@Js;hcE?L6CK0Q<&si<-L{IY4LePQOP^C`#YuA4vbOz2otQs z>mHxf1yU7tq&N_^RsTT+A{#Rd2)^5sz9{@|*gPV!SC}ugz3x%-O^F!0h;l41H4!lP z=kVV#W`%zbUHoGv?LR&j$JSESi47)8{h^Ix^~7ox39q|L?Z7+8t@W^UwDQoH-g{b z$Q1-ghkz*t;2>&=OU6*QXf#>G^#W6_!~aG*Vk|H07~2|cc>67fl2ja!M=^{&mlp4G zczI=Ci0_m&2OF!KPLfgQb9}~P{52K*u*ecWZc#Z?Ho!Z!0R?`pideQT}b*7TiMlgnnl#N<*y?vcie%dXf$IhEXU(ighsoNTDaDo%c z*>#g6+R{>B@s7X6OD_3lG1wecR4(M{7CQ(Ru*{pJ6`y1q7dw*!0XQ16xrxiq5+5+Y zE~ICZ*q?M!I))~m}R%98M023tHU!vh<{B^TJi-0_T*p3{GIyUcX;Ll z2OK#*!FC-q&`ZcKEg#G*(wE8IrpY>MSlN{zTM&zJ>+s287F>k->VR zmIqxPhBcIdK}%$>mh<;m->KxT1*4cqF->K(Ti_tSe}rk}YjOFD;M&nM9#A0?+NZN9 zjZE@)K5CR~V>28%wb=T&ZO@AySKw9)EH!!)SYg1zV7xbRvp8B`GiHru#LCY2@sr#@ z@*Vrr=^l48Jdf-^)8EOg|4hz5jnK&hY&UUBp8)(}xpaT9bxZd=9s&44iE)B|1X?4& z*>OmZxgZ5l7A9_9Ta-|L`5`39x(!tdM2lNJO{r5%PGlB%i37jj`Bl-2EB}`D#rv16 z?D{{`eL*ovm|Wdi97rOxu~H=ZR|a~LQ|4!%S>5?FlH8+2)nqnfd-jRWS&IdegyIL* zcbi77v2s;dWBB!UlarJ$|2*W_kSHeQGuF`wDo%Usdu)zvpKq?~`1;G>G%m!=@HY*F z@@pQJMVv`xjU~n4W7kyxx>`l@FC5nxFObjAxMsI6K0A8w>#8>{B+NANYe=Yj?tk4J zGr!z4PNCC0bR1AQM@T5Wn&uc-*apT#x=NZQ+qmkZ4mwGk21|&~$GNz#Q@n3KD4kkW zD2K|_?f8dl@NJo@dD~_U0i8#K1CE8qY+KzUyFpunQ^P zE`!5|>*j#7z(eGR_NK_tJ{M_gR0;7mIo(ZigZXf(t*D zkhptEcK;PVnp)pAI{Mmpo|^P0{Jx=rAzWW4<9@KkYq06}$7S=V_J;9851y)s)nIq` z^1DI7eIJ3$;p4YcAn|;{tKRiE)-5Wvob_(hI#-jWtN|Mq<1#}C8&Xl1?cpOjQ;ZtH zR(RThSe~a{qnScO#MHc-YHm*Exa`Y!g6a){-E_XFvZF*3PFY-LsHw#;Wh0j?VsHem zL0Q%x0=9NC=bIr>JxXB86mK>+@SfW_DnqC&IO9slz_|NKae0psiT(#WGlOzw3lCA6 z)`z>5Yf!`?rw38wiB3I}lUo(M(Ln>- zDDrYA)*rO272xYBiS#Y3BLHD4w-;fPq*k->QcL`rtJ^M*JQ38+bt2ofORA?wDLNC- zU5GYBFec>LV&O+8x+Mo(?QN&i$wKkul zW6T7ogtKC1WWAXCe1ZpYXcfRYdrm0jARNc4r05Wvl@oO69V>aB>4q;Hu=$L@Ac{uz?I7J8x{i~3Arr-4o54B5#K&7feTbN?j_!Ho{ z+6zyxjtV@Rq3LOIgN37CgxO#sa>}xQx~^6(e*%5sVexa}CMOK_uY&0L)@S$KCUIG} z0F2GzSI#X0j5|ESvA3WxrVZd`R|&$f)4+{x0$#E(OD@k24lw1}bnE$b-=U4B;|W*u ziB-Gk&-xPD*$Kyy9xJ)p#pcWi1`#0&*adK+K^t$QTAba}SnV*dVu8i?)3Q-Je{;J* zr^fqxxJ97Ag0UfK0PMo$O67? zE4kDtoRL9k1ElD8_K}eRO5&~&PDVBs|mn8UP>3py6~J7We;bM2)7 zMgd2*W;H{hzr%EQ2M`8rZ4;1>rkw9HImz@}==}-_i>+MH5&R8}`ji6j2&@&;`$g+R z_37&bRwek4K$y)Y$)blCETB1<6aV;8n`VFi1NNv;Bwb#66wXR1qx4W|xp zY81d#`l?fQ2I%*JL)gfp=>)<9X)UAv1Zoj!0pBBvYl>?)SIsxma*d1o67#I883Z@Uuftu zBnLqILG$|NL^%BvBboXm1I|w_Ffo_oMUd=mFX(Lv*?_cnZLgBBlNE%IMF6K#;GWaa zXeWg3q(lke{a?uy8zq4%7$7`T22K-48-^&gRS}knZGd_E3E7tTg#@8PoMuBAsM&}L z)tpMu#-&ldg#a0CTV=tT0Is|}fD64|foh=zR}5$LD+)ZAX!$aj6y;s?6jGjvYGt;@ z;mYYp?H0nxJdd+piwYFwUY#x*dg|#)cZZfK^T`5^@vo=?z}~~Z-U&;kntinAWL}yF zN9$;wLaf3Y;b;cw(>Jhhk+57~-w^Bm`bPX$U1t<@0+81Z;Jhw?8;u2OhJ!g|;U!9B zjEjC-!~Ys=`Df4;7@UOQ9e=6vEJC2OsG)Y&5P}0Im70w@`Fr*gbSgOVZm!Tkk?%;q z6nUMk4y*-!llv2t?*~cxCNPnozOmK#n{z4cc!o&$itB!Cw5C=muR7~)t;;B`}5 zS4totZKt>Ln5qeMV&%Z1KN2K(K@m;}igOa`5htlBy&Zo+T$Yw_ttJh|8PB$mLNrx5 z?3Y%-vLAvY&XEAwrP4MC`FprwVSbLrUg%bPhmh5GjlFw#dTgi2&Wvkd(d3W_CsZ)( zJOG=Wl9me$>K!y@{4^`=I7KQ+N1YVVG1>X~+Mhsfi1BP~^-zS(irErZlcAG*UbF!m z+dT><$t4mXI{^?B8Nc%m#qzn*}WFphiUVbxoYH zdalIH|3>h}!*g`-58wvtT;Tpd1uItd7Fe8wJ0hYANB@$;`X^3BSQy{nm;scvi{L&3 z-15@5l)Sb#>Ib<`M#SOo*rWmxdB+j84w`_oIj*-&T+=#ZnnT($r9bQ4qdCF@1*Y{3 zJ2AVxTV#r%dPR_!9d>OKBQtvC1Shhuk0n2B$bTB+C^SCITE>zRW2txg109d@NHn3YVl!IObEInSzF_68?85-3n44mKgQyg1*M)r0dIEv@H8(2?u#kSa0&IbiS9q~-wyf(m@Ac3_{-)b< zq@Ck(OyB6_rzR=#8g)-T1vY341(a{ik3J|Osx0=B8%0w~(RpJKsSPx#|7A3A8X^@F z+S0C-RBUv^q*5xMspdUg1Xq1CO}J`C4u_>(g`u>ymH1K~MvWOhO6PC@WyaAj96L?C$m!hcZo3&Z`{C=|h?itwWgeZq6|$31B5IHAcvRRg2x&hS8q zyf_%}-OAvJ(XmN#o<7i@fSdB{&Ees@=Yy(OU8N0qA|=fNsFA(LBexc0hld;}bZSw( zo>=OIHFZMIH|zJ;Srv9dt=^A+zs`C281GZG2vQ(3nnVT07Q}lr2FUgAC5%COqvP`$xWCSiNwRvLy`$v{cO5X<*mj*A4cc~?@}Sp{C*bqnP#1;>-uvYxeJM=F z9p1|pbe`sPZtQU}coXb4NxMD8TW4@o+J78HaffJ{50^+&N=V;0m9(izk^Aa@{;g7O zbAbl50t7@RG1UL+MUj`UJksOj?beuqpFE&D^bPf*2@^9wrckRXv7$T7+4ISWVuM8H z8=iYbs&(jlJnQc#{<;vshV}G*kT0(9z^B5b2G%&Z99eWdUR=pZH{9d>7k!~DIM+8n zqNk|heuV@O{r-A?yRBHA!AaN%XOE6yrTyin(-8YRdi_8n&S}(1w}Np=md{CM3A5c0 zbb-=+Z)7JNa+3?+NhPOh&+NvATooNxi9H2UAGiUburxjWi zmP);t-&g6=-Sgt<5C*F0<^rDev85HRj^&eh>dp#Q+P0|LUydwaj)tYitHDrSEOMxWQjhc>J1~G|~KQB8cpC zX0*k&$V+SG#uEDxTd=YNTDqAIA$pJH9nOmC&17ak%0D`khZz*`L1N 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 Date: Fri, 25 Mar 2022 22:13:20 +0100 Subject: [PATCH 37/43] no need to set preferred store --- check_results.py | 46 +++++++++++++++++++++++++++++----------------- commandor_page.py | 2 +- wait_for_sms.py | 7 ++----- 3 files changed, 32 insertions(+), 23 deletions(-) diff --git a/check_results.py b/check_results.py index e5c6632..274ea31 100644 --- a/check_results.py +++ b/check_results.py @@ -1,5 +1,6 @@ import random from enum import Enum +from typing import Union from playwright.sync_api import sync_playwright @@ -14,6 +15,7 @@ PENDING_SENTENCE = "Ce soir, entre 20:00 et 20:30, vous obtiendrez une réponse user_agent_list = ExcelHelper().read_user_agent_list() + class ResultEnum(Enum): ACCEPTED = "ACCEPTED" REFUSED = "REFUSED" @@ -28,24 +30,11 @@ def check_result_page(url) -> ResultEnum: def run(playwright, url) -> ResultEnum: browser = playwright.firefox.launch(headless=False) - PROXY_USERNAME = "panleicim-cc-fr-sid-" + get_random_id_number_for_proxy() - proxy = { - "server": params.PROXY_SERVER, - "username": PROXY_USERNAME, - "password": params.PROXY_PASSWORD - } - firefox_user_agents = filter(lambda user_agent: "firefox" in user_agent.lower(), user_agent_list) - firefox_user_agents_list = list(firefox_user_agents) - user_agent = random.choice(firefox_user_agents_list) - page = browser.new_page( - user_agent=user_agent, - proxy=proxy) - page.add_init_script("""() => Object.defineProperty(navigator,'webdriver',{get: () => undefined}""") url_to_check = url.replace("register/", "") url_to_check = url_to_check + "?lang=fr" - print(url_to_check) - page.goto(url_to_check,timeout=90000) - content = page.content() + content = None + while content is None: + content = load_page(browser, url_to_check) print(content) browser.close() if SORRY_SENTENCE in content: @@ -59,6 +48,28 @@ def run(playwright, url) -> ResultEnum: return ResultEnum.ACCEPTED +def load_page(browser, url) -> Union[str, None]: + try: + PROXY_USERNAME = "panleicim-cc-fr-sid-" + get_random_id_number_for_proxy() + proxy = { + "server": params.PROXY_SERVER, + "username": PROXY_USERNAME, + "password": params.PROXY_PASSWORD + } + firefox_user_agents = filter(lambda user_agent: "firefox" in user_agent.lower(), user_agent_list) + firefox_user_agents_list = list(firefox_user_agents) + user_agent = random.choice(firefox_user_agents_list) + page = browser.new_page( + user_agent=user_agent, + proxy=proxy) + page.add_init_script("""() => Object.defineProperty(navigator,'webdriver',{get: () => undefined}""") + page.goto(url, timeout=90000) + return page.content() + except Exception as error: + print(error) + return None + + # need to start at 21h00 if __name__ == '__main__': # get the list @@ -71,7 +82,8 @@ if __name__ == '__main__': reserve_pojo = ReserveResultPojo.from_firestore_dict(appointment.to_dict()) if reserve_pojo.accepted: print("status is " + reserve_pojo.accepted) - if reserve_pojo.accepted is None or ResultEnum.PENDING.value == reserve_pojo.accepted: + if reserve_pojo.accepted is None: + # or ResultEnum.PENDING.value == reserve_pojo.accepted: result = check_result_page(reserve_pojo.url) collection.document(reserve_pojo.id).update({u'accepted': result.name}) print(count) diff --git a/commandor_page.py b/commandor_page.py index 8aac263..7949b18 100644 --- a/commandor_page.py +++ b/commandor_page.py @@ -101,8 +101,8 @@ class CommandorPage: print("on_document_loaded called") def _setPhoneCountryAndStore(self): + # document.getElementById("prefer").value = \"faubourg\"; self.page.evaluate("""()=>{ - document.getElementById("prefer").value = \"faubourg\"; document.getElementById("phone_country").value = \"FR\" }""") def _setPhoneNumber(self, phoneNumber): diff --git a/wait_for_sms.py b/wait_for_sms.py index 58d494a..fa2196a 100644 --- a/wait_for_sms.py +++ b/wait_for_sms.py @@ -13,7 +13,6 @@ from modems.card_pool import CardPool from params import MODEM_POOL_PORTS, CARD_POOL_PORT from pojo.serial_modem import SerialModem from utils.excel_reader import ExcelHelper -from utils.operator import check_operator, Operator OTP_TIMEOUT = 40 commandor = CommandorPage() @@ -46,8 +45,6 @@ def timeout_occurred(serial_modem: SerialModem): def start_to_handle_sms(serial_modem: SerialModem): global current_gsm_modem current_gsm_modem = serial_modem.modem - # if check_operator(serial_modem.ccid) == Operator.LYCAMOBILE: - # lycamobile try: current_gsm_modem.deleteMultipleStoredSms(memory="SM") except Exception as error: @@ -87,8 +84,8 @@ def init_modems() -> list: def start_waiting_sms(): # logger = logging.getLogger() - slot_number = 1 - slot_sum = 28 + slot_number = 12 + slot_sum = 32 for i in range(slot_number, slot_sum + 1): card_pool.reset() logger.info("will switch to " + str(i)) From cd8d837aaf7a0ad7be8138d54134d8943b4cbd1c Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Fri, 25 Mar 2022 22:44:43 +0100 Subject: [PATCH 38/43] add slot_position and sim_position --- main.py | 14 +++++--------- modems/ModemPool.py | 4 ++-- pojo/SimInfoPojo.py | 14 ++++++++++++-- reset_all_sim_card.py | 10 +++++----- 4 files changed, 24 insertions(+), 18 deletions(-) diff --git a/main.py b/main.py index 4199901..978f38e 100644 --- a/main.py +++ b/main.py @@ -31,10 +31,6 @@ current_card_pool_slot = 1 current_sim_position = 1 -def get_devices_ports() -> list: - return MODEM_POOL_PORTS - - def send_command(cmd: str, ser, wait_time_in_s: int = 0) -> bytes: ser.write(cmd.encode()) msg = ser.read(100) @@ -131,7 +127,7 @@ def handle_sms(sms): def init_modems() -> list: modems = [] - for port in get_devices_ports(): + for port in params.MODEM_POOL_PORTS: serial_modem = create_modem_for_port(port) if serial_modem: modems.append(serial_modem) @@ -178,15 +174,15 @@ def on_ready_for_otp(e: Event, commandor: CommandorPage): def start_book(): - slot_number = 27 - slot_sum = 27 - for i in range(slot_number, slot_sum + 1): + start_slot_number = 27 + end_slot_number = 27 + for i in range(start_slot_number, end_slot_number + 1): card_pool.reset() logger.info("will switch to " + str(i)) global current_card_pool_slot current_card_pool_slot = i card_pool.switch_to_slot(i) - modem_pool = ModemPool(get_devices_ports()) + modem_pool = ModemPool(MODEM_POOL_PORTS) modem_pool.reset_all_modems() modem_list = init_modems() # read the contact, and contact the 2 objects together diff --git a/modems/ModemPool.py b/modems/ModemPool.py index 02e5b5a..db4d79f 100644 --- a/modems/ModemPool.py +++ b/modems/ModemPool.py @@ -95,8 +95,8 @@ class ModemPool: self._log_sender.send_log(phone_number, source=self.TAG, subject=SUBJECT_SIM_INFO, type=LOG_APPOINTMENT_SUCCESS) # write the number to sim card's phonebook - cmd = f'AT+CPBW={self.phone_number_position},\"{phone_number}\"\r' - self._send_command(cmd, ser, wait_time_in_s=2) + # cmd = f'AT+CPBW={self.phone_number_position},\"{phone_number}\"\r' + # self._send_command(cmd, ser, wait_time_in_s=2) def _select_sim_storage(self, ser) -> bool: # use SIM Card storage diff --git a/pojo/SimInfoPojo.py b/pojo/SimInfoPojo.py index 67766df..fa2b573 100644 --- a/pojo/SimInfoPojo.py +++ b/pojo/SimInfoPojo.py @@ -7,25 +7,33 @@ class SimInfoPojo: update_at: int position: int operator: str + slot_position: str + sim_position: str - def __init__(self, phone: str, ccid: str, position, operator: str, update_at: int = int(time.time())): + def __init__(self, phone: str, ccid: str, position, operator: str, slot_position, sim_position, + update_at: int = int(time.time())): self.phone = phone self.ccid = ccid self.update_at = update_at self.position = position self.operator = operator + self.slot_position = slot_position + self.sim_position = sim_position @staticmethod def from_firestore_dict(source): phone = source['phone'] ccid = source['ccid'] + sim_position = source['sim_position'] + slot_position = source['slot_position'] update_at = None if 'update_at' in source: update_at = source['update_at'] position = None if 'position' in source: position = source['position'] - result = SimInfoPojo(phone=phone, ccid=ccid, update_at=update_at, position=position, operator="") + result = SimInfoPojo(phone=phone, ccid=ccid, update_at=update_at, sim_position=sim_position, + slot_position=slot_position, position=position, operator="") if 'operator' in source: operator = source['operator'] result.operator = operator @@ -39,6 +47,8 @@ class SimInfoPojo: u'update_at': self.update_at, u'position': self.position, u'operator': self.operator, + u'slot_position': self.slot_position, + u'sim_position': self.sim_position, } return dest diff --git a/reset_all_sim_card.py b/reset_all_sim_card.py index 7430cab..2bb813c 100644 --- a/reset_all_sim_card.py +++ b/reset_all_sim_card.py @@ -5,19 +5,19 @@ import params from modems.ModemPool import ModemPool from logs.AppLogging import init_logger from logs.LogSender import LOG_SUBJECT_EVENT, TYPE_EVENT_RESET_ALL_SIM_CARDS -from main import card_pool, get_devices_ports +from main import card_pool def read_all_the_phone_number(): params.oracle_log_sender.send_log(msg="SIM卡自检开始", subject=LOG_SUBJECT_EVENT, type=TYPE_EVENT_RESET_ALL_SIM_CARDS) - slot_number = 1 - slot_sum = 26 + start_slot_number = 1 + end_slot_number = 26 params.firebase_store_manager.clear_all_sim_info() - for i in range(slot_number, slot_sum + 1): + for i in range(start_slot_number, end_slot_number + 1): card_pool.reset() logger.info("will switch to " + str(i)) card_pool.switch_to_slot(i) - modem_pool = ModemPool(get_devices_ports()) + modem_pool = ModemPool(params.MODEM_POOL_PORTS) modem_pool.reset_all_modems() modem_pool.get_raw_phone_number(i) From adc2e484f44e388e99e6485fca84f5ccfbe2caf4 Mon Sep 17 00:00:00 2001 From: Lei PAN Date: Sat, 26 Mar 2022 00:11:27 +0100 Subject: [PATCH 39/43] add missed contact --- contact.xlsx | Bin 40988 -> 40031 bytes modems/ModemPool.py | 9 ++++----- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/contact.xlsx b/contact.xlsx index 9ed34e79b9d8b90f416a384cdaecff2f4f5f5a9d..edb07bb94914269bfd137e39fc3e51e9707b5c7d 100644 GIT binary patch literal 40031 zcmeFY^K&QB*Djh&Y}>Xou_m@{+qP}n<^&Vlw#|v1Pt2S7zUS6Gx8C#V2jVQ=E3 zL+@^5O;`x}gEAlJ$G86fz5Wl5z+m!(Z9gNT$WzKILPCp*p}v9&T7U?_1bW3ih_)9Y zy6>0~<+~3Bcx9#JFUVqBL$chqC-?n~J$DhjG4nLnvQyrvb{^ubj5{EKoj;#5gJW1R4VwZl1Ye$~27 zl(<1@Q!7>Vi4KURN0dkmEoAc9Nf2Wi4-K%@Jyd2u_L);5C)}kd^=Oah2#I8Hg5%)b zgfe1YJDa*0K!9_$aiiMXg22hGozY6jjpT2%Z%3xyOk z0Ew@zxYN`q*vftL_k$PBP5TV_wGJ@ZL*WGf8caCZ2A-J#NF|uW;^Hn01L?j#navqZ z$Asr^D;C3darDYv3gJ5YQOrRU%f{M!qCM8Eo2CT>6OzO2Os%_|_TX7SXY06{A4mUi zscg|UynD2MtC0@loDp)l{|4gM7YLC2{|}}py4@x}zG1rajY61jnCdy2SUWM$|C9e0 zp8p49@_%!^I#EUngb6Y9I`E5VvWt6znt0xtLF7cn_yd?J<3pc4Bfhx(<4N?Fb3rq{ zXLhYyu1Cg$X+x2F5u%qXa;gYaV7BQ(hibpnM{6qtQj()+%!PP=0I_xDdDR0;4E15b z>H}Y7^?qS6J=vE(ri+;BP#|xcwgrcJiX*1xy(B^_#3ei2tI}8N8ZV` z)tsWDC|O7*NY2sA1qWDTXR(MAir;32sP{2rCo@8sx-G+4;S*CmuhF#H3_J4lcEjs; z6#hG8Br8e{{>_Mi00ChGK?1v5GyE57-0U2!4DIZ!{_So5FM@!-H@I(j{hxhxCQexn zGQtL5hja(cbvYz{%8zq-QH69hZ$L2CBZtXY8&&Xoyk#a|vDFo)%@&ce0+=RE-#G90 z@km^@sVEz8LEG1}rkkL3pXAh@2*aCL+MnRjqQ&cK=o#2%R;^^^j5`E~D>xMOGX{c^ zm9=nLP5APq(uPNVIbj>o1pP*67tuI+$%*dynV)G9nWKQ{c7#3X3p@5=XS2hq6BF0% zi!*zR1v3@_lawDz*AQs&u8Xem1I#10Ks#w~U<5=%n9l)MjkHXv4OHo!Wzvwj#i~Dk z326#uM46APghh*i%;^s`Y@E;8YdsC?6#t{6>em^}|5Q0iUjeS~-;H)290&;EyCl9V z=YOx6VwEl1bwO2yF7Mj3OR4Jl(}p=xqh(=0)i2N~BtQ4(H3 zI+r$V7IF0l0?$+(C+m>!NhE&9+{fM{r@7UUn{5V?PE>}%n)Ht8;>P1cJfawRp;PdV zjRnLdZK$-OEz(6v+Y=aDCCV#GRJC|Oh+Lu>OeVqgvdpUTTZv>S`WX@`@*rA2N7|L6 zOSz0DQ8^#A*$2T6f7BomKVZUgX59wE88=X-Gg=`IIa>O6PrFxGH4=NkYX4e#D6}ST zpaeD?ce1smk^hS-!I}wEal#r_r$%b83hhhu9sv`i=JjJCp(>C<(vp*f&VSfyUhEbH z1H~~uaLEB4KWuS0a?4(8fQ|-@FF~bs2-;15(1#5h*g{1!g3v=w7^ZoXXYqX6eVTq{ z-o;$QH$S9CIW{}n5+ zc_9rAqPQXN_q&?<;*WG-cuw2}Adm*U3j{gPUcXpExXe>p=7?4qpTxU>h)-KFfhE>z z&B{7UZh_eVb3auZa|13(u(UcoS@FnSF8jU}fU-e`lm6RBVi+ zJ}-7>5Oekd4kdIl-`4%bsOeT-xUh(^Bg7ho&l9V)XMx``?56ALg_m#H8vgxyM6O^CGv& zYR#Yaed3e}>cS0AyjH}W24?NsMPsJBAX%@sE4l*!?5ZdIrblX>na0qG|CIieDWu#2 zJcRWPe$Lq^sOHi|xFn#*&-?8GFp*cg1EszE=v$Kr%N18m@KZ7(=5&X`f9?@-(_(`} zSLJD4Yur@3Zm}8jd3(bKQ(Co+QZtFD#fBw6RJOvj8GxLbw-Vi}GQ5zyh5&bVDc)n5 z%_hEx$tJ$*c8kvuemTpOPiAzuS^-_Z1>c!Ztmzl)>G$0n|9guq09XhxeVkK=#PO{8!plv!?P+ z#k_dPGO@Ab!5gXc8%P-SyZT&N&c0vN5yYihp>s8kZCCuMd`IFtGl0E`nir%nVwBR9Z?B$P}sWt&7}|dTgb+Oj_7CK(-v|J{Q-$- zt7waX593M3#C`?rnNk!|j}#KE!D9XBZ#bTS!_&OReJN_o&y^!vP^XV6*?4gTYSC{_*o2u!wMiujz_bXIOlOX@hRAiDIn|V%Vddf-@>ceiJ@7Xs zwO3#l%ZtQ9j>;_WQ~??N0Ewi!n^KCqSEI7Jgz!mH7-xe#rrZO*KSo|6D?io>;v*>l z>dua(xT_T}Rg@$Ky|4SlpYNVMm@Y9%PgR*byHXI+K}igpBhu?y!jN4d7NQYJRm@td zz(tjUo#g*o@)%>`XvDsui3vx44`rk_ze>=L#&24HK10laoEERg_%b@J+AU~^R@*jn z2lniUqX2Qjj$(mn@AGMi9s~Kb$WdHep`#Hyu_Qm_*~Vw$j4LLb0yVzYc@#m|Eq{<{ zDd@S>zPVhPfehr@qBPOp|EeuzAANDs28~vuEVnw0-@S8`!1Y*yk}ILDWM%A&dfODQ zDif(`b_l$^lp0z0*cTGO`8HTlanS4Uv&z5jusdLqObArPsg`9D#79pfmqnW09rB(A z_#^nU_+#+)KGV38l(gM+ugKDxUw&+=f==MAF5nVBl~)>aCXM~)i4K=1`^`pMxn)Cs zAh=xeB7$ih-0>&eWgY&Ds+M+y#~tAxYkWDa<=xn&hVI&apIY1cDtu!EGc_i5Z`36CFpM<_v1Q7^D9o#C5+5WYy;V9 z*b$ndTf_3jzhq%i-QKUxZ?|cZO);j)eZaO%=sOgxA8#L9*Lh!W4?+?krpo4?<25kE zvm~Rb120UlHFdr>Cz`nz%d)DmMt=uxhm%qaKT>*db-G{0wq-7o_}it`IrhdUOkG;F z7ZF%X{Da+x2OsvuFz9xA)F5olONP{HPi2TvVZI0S#+AA%e!uB2dS~<_;eJ}O$m-k! zhHh3ldv2;#XD}Z%bJ*&&VtIM&)^h&ry|f);raCSXTdn*|x=wJgO5YVj?5D@DB z>aFGmjwZ%R&W;wgX8&oi$v!Ko`=ia5fG(p=zfpy2ue8q7xsK_+q}IVK?>3V7AEeQs z%>K`>EFw)bso{$r=j1RU#D*E1$C^m*pL#6^dzbx1s|Z0~-br6{K3)d_DDA#=A2Tg$ zjV}!68(P_Qy(VFdyI(J5~x%s?0) zci1Bq7wMq(^j*_uP!!3}= z!sQWwKa+LjFK_?i?fh=d@t;7qdK(ocX&H}CRc9>%WZg3zV~v%cTg2B5K?R*Q8n5r> zTZ`5zN+wh8pHdBgi-)$&AL6B@r_flaFx^x0EkSy$)yC$L7GpC5wz5YL<;i&HP9^8Q zk9u}3r52?%8`K#!WcAJz_^Qi*OEwpc)Tq!cmdVr*I~&8Rb}FjWO3lO%9_#k5+90X1 zHO&xiFa5stk-9wm;j)dY(NGIaHjQKP$EMvVmrtjDMhBUdu}4$Jzj6$4r}>qJG?_%F zGk$B^?#@5QYZ{ETL_#|syOO(PV2&#@+fAq=g;g_b-1fRJ>TXOjG94kmPJ69jQdg5< zb<(Vn1!cRPA{HA444r;5U!=U9Z#vO{w2w9b>$S)*Ynh6UKPbDZH;pFi5ZG=EC7+fz z8>}_d%>U%eVOFE&uBSBcq1hHNgqLhVDBO_`ASj6CC%&Zh%|j6~!QEDXLB?6arSiXQD1!5AbIP<=YK zJ)g0`k47djp_b9~G61L4-v%f|qj?~Qecz)Vx>h-i6~Xx-X$b-8M_bEOZS66($Oc)U z4xgXZv{a$i3uD6&=-WjN4y*JH+r2X@7{E-ljQUHWwk^)chzuQX!>`1IpApQYFu)1q zYj6m%b$f-?MyH|F7Ss+|Mvj~W-H_6LF_~comaEo2#&9MK+$b)N3Vz&DeA zc24q7*uoz<#_=jD`_yK^J-uO3d>e?pcBtSIuDjYPbQ{SN@T69lqxndDyo8+?S9()M za{&;YOcZB9p|36spn*7FzAYmTA+)URc+XiY@r5;21$Ue2aPoYgK6jA9`C>!#IWk@ zDk2GJK@DU(d|cxg@UIv)0R-rzrzG!YGdt*DbC45OSfdNZAy3vm^c^)o!(gu2C?%@( z3zf*NiL!$Fj=OUe7s@7>Ogeg)4!N@1*^Rv()=DX`tBU~Rfrm##Yssssz(v8arztbL zuE2*S8<}RCko>@tPT8D9bXwpZG~+)s2=KlI8~!51wDZ5#eExKoksVV7v7sXMlf;YH z`hQUqPKDMa0XfV)e6(2$CnH5z2zQoXU7XlJvXn9|)H#6)voEE!^gTww-lXja;8TwR zK~Qq`dJPo%q^N*NNfSQUx@~Z1u62UoOP-F)oyZR+)V1dqunLo|bR?zd8VW!_$4v7F zDC|KC39yi6BR zT;!tL(C+i0Yf#{Hn7ZX@k*UOJ=h6J=1u|(Sk}{?O8EMa*fc}XdNH9e!&(MjA+Mx~) z;-W;B0lIacUEJYl`9m2cn24)l6;R7S<{}b=SauFdWK&#ZlP43Al-Y zK(`!gx`rec)Pba4c5gpW`%_1K~-^n|dYj?~al; z$9|}!J}P0uav>c}O|Cf&tm1(Yv(k{H@PbrEHBi#h1ElZ7itj26ePFOoM7F`_9g?(fR0dCv6Uij&$y?({IA0vggsA-A^pJ5>b8;Wmj;XBcz?(i~;5 ziyF@tAxW)FZ?~LxsO@9hOiN|1TNCk(6a3lWFTz~t{tYo0E_m*^r&#OQo}Q|Cye(1zR9P9#TeGbC zJab$=a^fz&KfQ56iHpz#IBaE(Tt7>>ZWZh*G)=_;5JQc)|7A!lk|C0KS72c^`r_C+ z>?;ACeBj!i3JKO1k?t}|v?_Zcc;=n5{q_(Bo8Mp}e4DF|i zy%grZVQFaTsP`K!7iAg>*U147Hfw}hSubM-YMwDLNh_IXs?)#&eZa89BA2xi%AUfD zXwV$Hyj#T#cUYJVJYkN{sOd+I^ljaotkl#-eaUyyTy)k2%qorkn2nUXA%tCrm23V5 zAte~FnQ>Z+kp>!-p*~~^?2tOwn$5Pg26|Kre9vvPivXDQA=GmHc4-`e$1E$vWGkH@ zYOPW9eD&ig=~^y1WfJUZkRT#g zCX#2=aOqLpjTmBw)Sn#jE56J#Aj&(f8fGa^M6WGJ^$;>~T27Z$9i=K2%VUNXS|!Tf zMKG}V(kF4E4Zl2+t@e>=$ww!|Z3~vG}rp3I4 zk#r%y`M4IZZGOEDI+`3Y#rgAsE3HQs6X-I^#DEn=-zk&+&%} z^u$$xj<&nFU#e#m^y#dE{(Yl{QhUHmDwLNw#(2l{2|OQmPSo4;PZX9Wi-f~;eB8q* z{Wq2~suK=y(4x06zT*`e5OK{m0_2X{k|Zx=Np^dNUUo=_lUZ>6Qt6&$UjpUNuf{p6 zMZVV=^fwB5>fR9YS0&OUwyd{~Eh-elUB7PRSoT@9@ijP0H;rF?@*s2m14*d9;^{Q- zE?>ARf)87&`6DxC)0^QR^LXon3 z4KTC6t?@z}5^eM0G|aUHGrhLwgs?%epsg@MOAWMs_Lws(lU>vYvau)+lAcj_snp!@ z{4nRhuC4+bgz9=l9GC?W2Pra5NB1ln)1zPeXhb)A=hvN+x4uVGunbavKcS@z44xI5 zOQ}{gK!uZDfmWS+N9y)8fz^&@gGGsgKx(4`r}HoN!sDm_cCf zq05);;J5&D4BQXOXxx@IZzH8pLQMU9f)Q+B6%8vjsI+_N?hWb#L#JKxvasmNWB zSI-c|(XIf2?9mWU`;8s{ryPTe_p*qWOR#S8ikwY`HB-3lhUlgS-wdKn70$!!UB?iJ zoW?~xAHP43ZCl}2(Vw@=mzSI=mpVIIb!+W0TXv6NRm-c3If7X5TfcjougCXv9X5IH zg&8BCjtjo88tjlgUwnLcG5mtxFP?a;d>O2`aXPWUoFWVR9FO7dqnb$B$vSI9z>w}A z)vxY(jX1Bb4SGo|5pcNO)ddRLilADT4rYa0O+#y(327C$@2h4u=wwg!QOd8cKTTb# zDrPLD->l)^yQ#0HB}fq_l?N6t%}L_1UzR(P!gbY{cY44J3B>{WNj$kGlLM zE}plB>phQUd3iH4ga}HgYGSLI)(ETwy`nkgjm^xOLq{0uCQ0OQWoeJf^PBmC4|B9GGhSn+9Nq zvR2~KYt@_L$lE$DmB)(J15cm(Fpp3I9iesquD58J9y@C;QIrTSZ)nBoxc6ro1T&_3 z*9T3!R(yGUbXtQ`1hU{bAoo?SVZww#znr__;-PpsX%nQF0zB#?i#BkqVg7_6gsJ7h zOx-&bdkwsGJFVMBWISTR(&`_u#@^=kWc$6uxa&<=l&rM!W^yQ9dvMP>`wLO_4fw%aeTcY#*)ltT}UJdZCYcI~9WQGmF8KQBms1jihmI_y(Rtj|O) z!EI7JP|an+S8zgCciXwc$cmArN`LQ=WrcAUhE%1$_L*(Ou-M zjj^>7n6!hn$bDEt_Z|F!4?_~g)dT?m+@Y$ifciGc+c>W+0#*tpurRN8uI_VyaAqoE zh^^8vnfmm6&^d7@;DsSkB<)RQPc%{vht9SchFu7f-Z&ANKR^jdR-xha^*U6&s&xM7 zJMe+n60BrQ z-QHu?5Gx*PeE_u8BhlxqD$0g+`1rU9+djA-qS-*OeHBktRHBv>;EIv>_pB8W9C91P zHOMJ{4sfkTlwH%^p1w5Y%cVyTg`Sb`gkk=-PQTYb?x61nff0%;l;uIu?O3kfi3+Fy zytB{tzAx@UWBRP+d`?&saN>k|y**GrGBOt@GOFP;z52)y%Hs{nEe^uuDU zXH0=PlO~)M=9nbVn_767N+hQh3sgvqmJnAKvYeT?yeQ6kv9H|*K7H-KfS4PV=L=NW z=8sbwPIBqrQAMl1lgyjpq}uC!uHHLlSM>FUfgRXaXbQ&IL?{uxE~%|=T>auStB4Ic z6Hr1?HB1=#J^@VZm2<4^GjSS2M5E7(+isp>PmNZwqlrNlqL6Ja(#oy-IzJIEB|4TD zpv)?dUq;v7fTtTEF{<)Z*do|>VoDEAJT|y+Zwv;CA`b8Zm_m{cacXrn+6MIVQEFI^ zJ4YMfQNi|(X38Xu{Vz0a53$s{Za!thPktPM*(2>DgYUBSZGq5ipT|ryT`h4W{k(oT z&t8`69qD1Noir#LpOSpB7FM-Rgu$0jwO2|xfZ5wwZN0!&aN#vqvT3{?iP#ySgD{jo zxLxxZsV&{FEJmM$ne)ZqLH$hvy<58w&TXIL>Ea1Sb_m)!gui+MvB;JN6?1YOCO*@Y zkAcH3#t7tm?#O=|92eX8GwXgK)9nR(03cxdk zVW%Ere~i_?9E`V`BO-{Z>tHw4zNK3563@XCqsTsC0ql$}PW!bAohX{}iHp@x5Q}T| z)QJ(}JP^m16$aG-jd8(-8~aN0rm2%-H-muX*mEgXpKfYVxzPoGRCY^7vgd@Ys}AD} zZn2BO^z4z}v}W`4dNr)Y4z+Eo?Y%8=K#F#}mSB~gh|fM` zpjA3%X5va|3M{P&T=2=#o4TV;+tk6`S04?hi_4cqEuOm77{CV6@Ot5LNx^m?GU)bq zxl8Bx9c57o&g;RAAqwg4)}!#>r^KRVb%X;ivl)qSWcJ?|y>;8mWv!bD%eBJq?;m9@Ah;t*!kcx>#!BLE9Xj)*fyb!7flG|w;)yGd zP;taOSElJ){J3it=^U>3(nXdJy(fMY=(=}X9^f?z<29p1pSZsU<03K&my!b5NnB`T=0S)b+{-7 zo4`w+@xfIVm*{)b>StFJxoei!tGDf2W>)V+IDq*FrWAkCNg6Q;){4A2s5-fNA|sV@ zz_XNNLD(mNwxE0n&gX57I0qVS8rrz25FM^@9dX=lofml$>9anZx^{L}zX4|OBP3B! z6A?FwW_Ov{d@;bERJ6`z=mQ)YWRQtQ3J!vQF1jaFIm^VGc@j*`Oea4E?{>7!s~d?y z<`vYX_h44Dwn<*+Uj2Yf^>CA;uk&HHkuV5(lUe!vPUs87%ZM- zz||}zNcb81Hi9}@!~?aOaLC?ynq(?UW%RU2z*`=Rpz=+lI2osZS!vX-g<8gn*x z;s|CQ%tag>k!Rj97&EtUoFCl{)OQT9u*097N<1fUQOdOvn`3SaIwA zvRz!Zs`q^9HR;WI!z-Uc2lcF>!p=8YDng8$Y|94^j2#@cWT^_F`bW^U<3~Mh&~T3R zoD_=5zS%v_R()X-Se~F2^y@T|0_iby;C<&Ae9X-7{o02ftxOtld{N8~u5Nn*2bLVp z*>+IV{WqSIvbnK|;GMh;5=w2GyASA5@=5?MUj$bJq$}oxD4bhuLjQVEl5uuXzX0xe znrcazipdW~c^(1RtI$}AXmZyD{BxL~c;G>%Mo9ytdgK#PUp!dN$BvR}aN{5TBM`X$ zzvSRAq>?d{5k9(@%0_P2PnWAgA$q+HOtGaVDwy&4s%#lxi>$w#&4`~em!_SXJuPhG zI|-kUdHn@xu3*sxhLIJjEOGbi^3)hvRt9y(7@EkPLuX2PJ(d4lUn~4F0fdp1y!Qvo zC0wS=5u7ZZX#2NC2UO^UI9QspEgog-Zq9oMWIMD!3Kh&*IhB}BiGe1uT`A-WI8quw z-pn=h4B9!%NB!CXO-~#T#yXA#C&w!&!T7dD9Hm zWzDq_%w|+8))l=Tsx(2ac8oxI2sg*cGDgj7_C>FqPcn4+6H)}xiI%p2E_5>N)iiqPRM2VW{iCRs7lM#5jc}Y{M?eu5`A- z;csT_MXzGmpsNN-Lz?VB47Yg(2!S$|eayD$1LIlbM-G~MPo>Lc^($$#GYl-8Bb%I3 z$~r9G&GCFVahw_4Xar9NF6g?_48}(IZHG!xJH)*5zdCGFH=zSoKf)6E*Izfu9opb6 z1GzSdd93Yarp~Y9N@G-&O4#S%nL|sz#9%D;p;(d%rq1u8Kb>U|V5w%FC<6N8; zlh%3XeP<1rEOj{&fFF1rfj{-+`YWr7W`@E~oPA=w<^!QP@DWo8Db=qD2qar1SGhUZ z3XxIAq|pvTN(;=lsCbX>IS^6)@=kLWqD1p6UXlUvkHO}vwNQhIkJ)RzpPx!uE-YrD zMIJY3*IAadq3oglJ%?b;{3!hmN2%~6*nK3g3&Q^irjS_GJMyUg(hKaZxM0Mjsgi}H zY%BlSH5-57YqMlSl?=Gyc*HxN*>*9Ylm|uv=kWP_$5$WY@U`a>FV%MrWTioXs2cMY z#SWIoa%gSY^iL@#VAa>(%`vu=oIRNJPK2(w*u>jDYS?S(t{ifjWlpMZJT(bN%@TONwr zurCLNCv*4b{CU>AMzM|~PR_OTe#thRv9t2IdNn0BH5X}(FU$7}=(EBcT4yXdZ9Pnc zI)mZP87wCqcwI2ZC-z4$%|d_IO%Pa@FED5zM3VOMh7h{_P*l;`S(q^*pxob&zdgVq zmE7(SO~l)x_#viSHW%38Ai)_xAdDo)v~e~%(Ei#fG(@8uv>Xtm0&|g__TF$KESXDP zRX|;#tPA;lsDa?O3@1aTkK?g}J5Lo{4B#Sk{fqGHiBL3(41VIulE?pZ1b9xW zl`WFXx@w6Y3G)|CPrQ!NUQBX2{t|5#6)*+W}t5-aB;A#o#??-R3FX5gYBwoKb{ zDIG=6r}aUU9_Smu42PgcJL7qp(Q`v!+{+EH)ARnAYD|GU0wL|9(FC57E-u+{DI&;Xjh;AB${K zZOnFq5wQ#7gdeh{$iF5a*5jMuTy8EM{!5D-Q?MLg68*=00ePqkBNZPyYa?$YXGr{jLb^ZdLo@2Bas zDxxrFeV+7b#)oE-Did?!qWa`_`PGzRUx|vS!hKcZV)cYiyDj?vUZ%5Ai%g6 zWsyv|m&0yJgY|YIYa%izMXIvVwxluc? z6!3O>PUZ*we!P4Z0*W9GFYI}`x5u|Feb`1H<$3hc%ax%>n(fp2q~M*-0stOXAL0lP z{MHBLO3eWF`_E$WePKRdS!+Wa_BW8s&l(8)IXQaOX7KpGuqIw)5b!_^T6I@W&=Zp{ z&KGXr!Itc}#q1K2wJ*<$0=3f&L4e?lg%3BC;?QKoLAyN29s5~v8j6iq@yCd`8SQZ~ zIQ`0WxJK&CFepQHS{1&;6L|{V=M%H*Ydnqbvj%%j#_rrfM5`h3+a8rwuy~fq9PBFy zTZd6fUX!YpS(C{>n5+EDvz zYN2t+;?D^Z$i|p^G80D+x66w1XPuqxcUqJ@ktMC+F@|y~xCyA8h8(rC^Wf!JG<}sf z3iVsErv)#CVntYNlRaoeu@x>a@y4^q)mxG3mly!#T6MT|CK;P&6A2jqZhX0 z3UW|RG)l(-`s=ywFFGL&K@2YH79Fz;GB#DmMJiYs(GP*W7**KMs0lszWts^s$|ts{ z>n<8s8ee4d`WwnwsA#7O{l#?a;kLTq>hqqQKIMt4-WY{z5%rV=&%#wh+g-{+Iy`Td zUkAxSpj=e;JLkXLQ_g_j&MMyS%a`ZW3)iNk#Z>MWanTo^aPH8nY{R*#qn!_8q+B&y z%p2jcUF;=0eebmv+oy0XGad9on@m?!)7EixA*-b)AOF_mAO&T(pZ*PV>CmZy5O%5^ zH1gjGd=%62aDm%*09HHEDlKl~;ivqyJ8wq6S7W_9pVae>*8k22{mc=>&-!LFL4M^uO5m|9SWiwEx4s?@Vj61tCHVeG~TxL-XkjvzxFg6DMvHN8v>9 z$9QCh!CVEL3ZYP?5|d>bN(Mh4FYr&oUc?EJ1jgcMQDr2$qbK-JNY_iEQ@!x?@Y;y$ z~YKv zqrn$-Z;4`n*xV~27>%<2?ug)=6~h&7z9_T~BqBCxrz?%R@TVt!uxn?NK)_v+%9ies z5!TY*iAccQ@YTmK{}QFP)G^5kKz~4|Skd7<#MwP}4G2mbbM{>{g0%0lvHGV9w8v0@KInO%>S0#|1YcAN?LYVjHteOjbHxny1l{1 z7O09YTa_y7LQ7k@cuwNgtLbax5h*{ zG+PqPaS7dW{HFu#Cy)NJ2XY*JTIY?}N!`Z3$Ic@C28C)_q9~GRb7rkc zF>&vo;UjX8;xWC9Q-=Uj@vGp#5%prS%zC27k23Y0Vfq(DFClCR?BNEugQZM4ho={p zuZeZP{)_4OpVm?Bv(`Y`7IRoTdIqAow};dnU16-se$`cRb?TFKSR<{vd=`cuQ^C5` z!*7p#Pv{SlD^3MCC5J+`2Yu&oZ~Zts-ubv+AoxCR9K`i}E)n>C>GeDhJnhKreC!{8 zy&ZhLXnelfslCixe^UBweHnK7Jw@$&_T+s%zkNMV$$fp=mE3gbeVw(4MG?f3@Ay&t zAb$Om{CQl<(DQoe_xY;U^Ijv_DH1Uz$x}GEB-tqzu_o!Q9C5mg<@kpPrdVu3l(j4>Z{qZ}PhfiI;7zN?w&S3O3e-JX*%y-eWdh@BeNd>0Y)_7ut5v zw|L|-OgF_*8*Ls5K6XW7ws0Q%DI=Y;VI<^Hvp8#cQC_n_9oYSCE}}SZu7Y@`o)_8R z+VXBx$=J40dphb=OZdJYzsFGPAqfe1Jw`YTG)(1sFr1M;}wjKUPrSx_4njiAF zYStI&KQF!{0oH%FW@#D-GUuC#;>VMXjNwYg@nNM-qq%-~qYrpO} z=V=-8Ux@Ww*?KqoW#YN>()%Hgb-Z7ave0T{`7(%jDp=!%d2U>(}Key?J&E$5W}8w+Kv3i z_L40e68-jWCTQaMwDsX8XcGN)^(izLJbX1Fim=dv!JDuKc61z{)yx7!0{?q1fol0qb{En*t$11^LpS=YIlh+fi{<5NPUqj@= zpks>u`I?8NyJ-9>SDaPK(S6f7nl*lZrNwi3D^GOLeRCQv6#dhis~6Jbd5c~DkoAy5sLirhnle^h_YR%Gw zcUVTz^VWDHIm1>E3f|gx9w(Z$-=iuNN7V05(-`*%kFuM*(kb_ z+)BH?Tk zg*i-ZnD*!LkpU!gT9Zy9D$#$^DKSvc|>e~gy`WuPS5gY zjSDMGj;*fk6AC12ez*(U;5GmkAS8#ISFXs?7Y?5a0D%SWP)&H zZF<1(zDr(J9|1kxw*jKAfGzCOm-0FmHR>qzSrw)k}GN z+Zq-^|{Q2oAXGQHsoH5>g3IUCJ<%t*$N*?t0*bSw5VE|=CR_ige;C&{VB7OnE6LZwsG;?-XxIgkNJFSIb0Jn$4{q{c2d4 z>A&TxoMg5y%xd|xD1cqvX?`g2${^#r#c^e}=tW6je?0 z@>!|M95l*@0I~Y{EPI1s*`>Fk7XS{|4<5k--PB*PS&hDs-KWk}2TT2DtNQZS!FD zhH&|r@s{xF)cr%m103m)mVlj1b)3Ta;ZZ~+#05z{yJYo8=l#gs5=-y<`%Rf8@wHy6 z`c5}rJ-rMr&!w+SBIHA~p?HjdV>iV8a`x(9J}&{gB=u|HEH71krPOT0R`aUFHtvzQYzwf%fC-<#q5CKWRT+Eo$-_;<*7rGewLb031W&tJZK?5_hxoL% z9DU=?>s|PrXsK;vX7C$$S7Uc)Z!5=3B@u3MUJTp9V@R8R!) zlT`_n^?8Z+@FfnaW)gOUPrT!d`>MZ0`}n+biv*|9_~tl^xzwIf%Uqb@lV8Pq(I`W% zw2>ALZ-&hqyuaHA59c|-)9S#|^@WET(Q)|A@O_;710X){yGTeHj9+3YkEW3lWZ|Le zoE>~UY&-P2?kTZxKL=%&GV3zsq&C&I{*0}(mb{{|X-okV?Imu{)$R3y_*k&w{mdsg z61-Na3`+2U>ui8t)8p>srlY#thU-}X94N2AgkXr%5yT=jQZS0P7Lm3Bq@-1A4d9hu zPlgZp=G;-y_#EHecM(1Nh11`imwaaeD=`s3l_^6f1DUtV5G0$v?%Gwjh@HB5HqOj| z@XKNN)n5Of_TDYvq+3ctx};k=1VKWO?hXk7=?>{` z_}1F!qmSoz&U@a!znANJ*n8b;-eb-&=D6>@9+0&>5FHqHKh$VcXisO;wlh2W$$d=YLd>E!pL-s8dv;N$4;zT6x;LS~ZmDvqL-rWTsI%Cae{S#+UyY;#z zbneMEC5$Abq+))^4+WlI0J!|SvluV8R%Ha9-`Nw2jc0hoyyXTJE9%R%X8U#WzP8_Z z8~bK6f3I^jS?_4IS(;XizfM^NEu7Y!Xg5cO0Jv@T-d+acH$2lrgNq(%JR5%5#d93M$f3XOA)G1jH z18%gYBY(hmL)C6_&18o7lfKpOVm?l9p3fPn6XOm;54^w1!YD-Y{$*W{+jJ^m}wcQWXKK zYY)H`bJW888V=4l(TYT<1m95Sd~9N?V8jRIJsSeQ;v;O(TMw3mM^Gft4a(cN5xLtl z+)eXSDHW}tJl7#K4$PjYL)KL(LgW(&HIMJ{aX-agNB==Glq;Fzib`nqybTXc8Szvn znaYw`Ho0X+4dcgRV>p2>={3`i2+*lbfnw5+6KKhhB|&Am$o5Hjk}LkotvLxXW!A69 z9*IAod}-5f22CsljmW^G$_!U5&5R0IKDV*2Nvj0ivC>&lm&&ypXkm`#bF*gA(sR)+ zTetl`9LML;2B4L)*%0OeRh~7brR`G*Q0fadjRT`WU)Oz( zNa{mN!o33B6S*#0+yuh-QyK0KmxHa8#;UYQR4qtByA%N=KV#U8n(aFBa)*=I6xb?D zdvnEgzUGF`w1>l@umv^iXOmhb#$t0!_!QVy51ZW4a&ubvHP{+Rg{MW}Wy-%nV`+C` zK{QXTYU8!3hnLwLZ{4^ruLAFWYWnR&WDqcBQnUXD)cDh?R#kLFRta=DGRo%l!{eQx$2P`1MW=sCMBo?3Kj1xOiFX} zb9XjSCf`6xVsW{vxG~WMmmS?V2C7Sxg(Sr1@^oXb8qQLbfGY_JDV);OT~!xE2jF|Y zJG#8V*&=^GsdUAOZ^u&%#bnjE$v*i4-e;s9v3r_+A=HwS ziRKm{m_xk;fJ_e0%r%xdl`4{dF3KCZ7kF4;0I5Ze8XtvU$z8*-|_K{4ZxDjEbs^_HHKuuG^&hIDX&o`+HA>JRs;bZA% zH^hr)i`GzH}k$TOdU2% zb{%y^AiI`XtQ0Ar=#+hNrF|J7#fzyT+J8++M`Eg`yAydj6n{C~@xgg1=KFT;$J3z@ zrLXIlDje-)onmXEkr(XA#BaD0u9}5xB&AV#{C)3bfk|``OgH@eBx3{Q;%unYH>Rbr ztac-`Z_o!1Z?{4ZwHTu9*PUT_(46&-rS)SaCP1V+a4@!Kpp?scg}{@`6GD;q^Vkc`a-C={q~T$P<>pZG^FbaL--dJest zlYH>pYM%Fu%22?IoCyefcTJat_aCKBQ zi(rPrdD%EQ?`G|BKPLC0xvpM5c%jewffe6p^6J;{R=PK69|k;)sK-G(thYMql63l*5K1z(C4HyOze)4-cNSDujVf*wpuQGM)Nthf2~+{i2j1Rzp-`)?p1v^MT6`k zsev}in6Z+mDyc6KNNOQxs+18@c2lKV^W< zXUbP&NV-J%rvhHI>k)q zCk}1FVMwMQ;(QWnTL#X9v;{4RMv-;$@fh=p@fam(+k>TCDeIFRB^n~KR2U;mJ@%AZ zv7&?aF!R-($h4Q)_Sx`r2st?>!NZC^2lO*0;uw9Q@~?%cfC4nwC( zPYtDT5{|~mu1oA@6pSHL{B(^%YmM)ehMH~Zh?{<+Ewv%@i>L+5 zm;rkp&Bx1@otq6@&j_D8-Lg-w7Y!exFB?BZzhm@piBiD>Ny&980_N$Ral!mr{`bn> zu+c%`g88j?9>tKNMGI>a`=`OGomzCzj4B*+&ErQm8}sxZ+$r7t9_FL=hR*HtVuUOi za@rP`0&_PB0+P2P5IS!wc%OgL#_N8BpS%rGBAmgz5>f85==Vh^{AYL57Ptc8I-7I3 z!rnuHC{gHM0E&JKPlVrqqlI%=X$QY95VbWPc-LUQj5q)p{C?2~36fWg=5t*40&_T` zfmz2fp}^CRn}JG#^!-et`C^s56-^j5I7}k28FI@o5ipoqU8*j-kA)iG3}U+NKa!YM z2GqA@NYJ^4i;;d>lYSiZ#areD+V?PZ&l2KX-A`*6!87`U5_IQ7K@qz8cQyLCpWm&; zr+RTp@u?X%5T{=<6GJD8h&~KIY%!%BWShvML@H5 zaL~PvumboQM{pp1y<{(tD}>p}nQyhArZPWsGSRT2Q+=hal|}nO>^BMneDAzf_-pfo z2FD$j%)V;Q!ux7HwehMe!L6n0zH}l|wpMB#j5r8g#cII@ty2j(hExS^O3Zz@fuy{qcq@vaEofm9{zt zODNgN6PGhLr1H+h7ee1#)lFz~#JI*N3<%yFczDa|%LW&kLJf#0G1D)6xlcaaZt#{) zCR8AA!R3Y^FaAiq_4I4f<$Id;s3&YsT(}Z*@T_Ezs~8!A$cn`}#Y7@*<_nZWt~T<- zj>nK2868EV0bm57GrJeL$ku-Li)c^>>G|>Zb+v*cOyO1ry5joT+U)fS8qdBe%LH=) z5NzHDtCteS1dT2@WzZxx{D)M~sSCUbc~z-cFe#=`tIvBA?}MW`*<9M=`$8TLw)^tK z<(;i=k6$lb`qL>p6mP}7fb-yM?$dsKtRATpTu2N((iRplr|!E+hB#B!)`u##!Qc42 z@FKr83~>w`wRX3yo!)_&Q*SFIX1;mBY|sJyKJzqSd@5dX5zVWQns1UsXn|6;kvx6E z&?b9kB~IO75mv{}gw`<&pDXLtYaZUj`YsvQ?D|jv7!GMSQL<5r!y0t5ZN>yEo4a1B zZ5D2#BhLX;bcf}6=+@6Hu=km*UNC3b$8!cNLZue#U;~*kf=Q!p2 z^6^H@@mN%x_Daw5;D{mJj~9;LkQ<5=z24BC$Y_e1K7AVhx^XZHrg1o_LYB-lK_PMf z-tzW3^w+iN5%>LUvEzAIggu*kvdiJ|j2O~UbTP+>EN^M^UWY+G~v47{M z@hZJ`T)zL3COQT=P$^v60(#2Kkm^09Wj>zk5V>WbB9tOn9a*-XB#qR)BU??Zmr#|; zz1O`MmC7jJg{-9+^C|@F@TQ~%C8mZb-eYT7PTnckx-g6WT0Mwf(MWxeknyJ<9!$WQSRt`HXL}?kc)(XU3^bP=_w+);GN7rkNQHs34&I2ZK%%7t*?O9eU1t-FXQ{ks&Uy41XICHm3^ zWIUD=PQr@Whkd*~(*i!}7cS2gR?)!eSAb$|fUc>jCvXmqPyhvUFt>;!IxpYOkM&I` z=K{Uauz*}h(XLwY!{4EIl|iB9L6LS3Ys+)WV3z=(tpFerLZXcskWC(x4S@C{Ub>Fk zaCzM`j7rb4^Xl=&UU`GH*z8MsVK9T$v)c^qr0S!K`CxxiQ!C@`|Ej|Z6Noy?4^rdN z^8jKSFQb082!Y5^WZvO1A}OE!EE`L-__OI%AUF-j@?(+5D)gd1LQ5{5Xg&%*&9YG8yKaknU!vngg zf^s202%4u;ZNWB3uu+Mgg=@6im3K>i>%}h<;ce#%ly^=*?;i3d*RWsN{`405=4}#S z5t(fEhhfWi(Tt8AApZC>H7Sq?_Wd7;AkFJw{F5ixVl;v6zxtBOH}yC3v&z4jZ(IIm z{>j8Yxs6LhL}eq~?z7|Fenq&_~Gc72jLit9bD0nA-UuaM_>!9ALo@V*0IN=<<=eS zzZ46R<;3n=>aA4Yv4F+Ds=>` zdfkbZ$ca7TDUm$1as;fr_CfeT)$JhxCF>u_zKleQO7yC>Sdub}M5*eF!;RZ3eU;(3 z^Ud|7)Hwp1727TpA47VWPsr|jHtV?pEm3lt_FWv`~B! ziZ&E66@78hA^WHZ4M!=x%;t3F7D^y?4u};@v?NUIn0)Jzcf`TbjG8VH#ll6viOJ6F zMQB(#FefoMEm+6doJ!6N+h{VSKGGV2|KRyIdXaXNH18mMD6vJOOscoNWRD6aeM0at z#3rvZ`8gJ}D8Ja0d(pG_JSeEv?Tp7zz~1CftSG$soLv*XQfh93O^6}ZB2Iax02S1J zB`J&I;)8PGpcJ_$E~-!>VmivQ7&?KOAS8ZO-FG`#EwQ3EUg0GLYv+4yCwzQXiXd-# zY1?$gKnZ~HQ8fNUAB^rKvqD1vg5;#c;la!AeU#0E<^*9Wsug4*e2WKoo z(=fs`;OZ0%G692LO=g~>hrUc-YOY4nE<@yP^2C$quSWad*0?B4F{vtxFP8 zkrkWT1iDha@(w*w%)keakW6o$UL&DF*$5G*bVbGtN{I?>kh`f^Ckjh{`0MPI5`-Uv zK`4zKMT)X02|^LWYz+_pnKjKHc2CeV(lni89!%QnJ$HL zb&nOv{W13H7EKO76C5O?GRk_S?nocn8}O)rFeL0D@)h#4wR8c9*-dy^@$Z-B$##1`R!dP6v&g5a6=#Dg*nv4%SdZ9D`v zUt?MUU7O5I#M_7Ol3zT|`&U%MP$%FlhhRXt_a^9Atcuw5lQH5(tzGWZ^8l$w1g)(h z*kV1F*^z)%9en->O9H|~vAr*$Vg?`2s5XcGCaS<&(1IY0* z>6aWU8HPziogwkTKl-WuP>tqRwSU4gOulEau~25@ZJVT-9TP~WU;LZ}$n42YHGCw$UspA4GDzDZ|Nk5MSJnehq8biYi+^Is+u-D1{ zgUn4!g)B#1H#T!GJqs}O%3ek0ru|5)KNyaAK|BFi5R|4vLjsC-DOMB-4<#`~?e&8d z@{yhvv$VyOk{fyj+g$V%iiu}aQPy=^x{f`GoqIa9&SD;^0Q`f>I9pnzkFB!wc2$=W zGXVjQ>!KB0ST9r-tkgF8mdqdjNG-+DObcUIlv~C#v$Xl}^f3#qLq>&4LN+mH+2cEW zhF*yits4BpLA^>w&+J$UpG9;-u~!5t<%@i{reV$dl5k;vJ0dkB6L~S;{>(1;wWNCF z**we$9!;)oa`DuHW8@11W%xX1MY)Ghb;Ecb_oR-JTIw2iX5z#&TBnesuk##q1=^32 zzuiD-5}8eq=gBHVMYb?D$`nJ6{a98qxL{*WNFSzSpOUUpy;Imjq9Gj(cSwJgL}O&H z?KY;Cc9m(ozmse~TBq}|jQ^WN%2}lpw-P)I7h)avmHuelLc)fm@$~BjIuS;(S+$cZ z2l|WgSn9E!{r>S$_QUp&?WA??4Shm~`}#HX=?JJlfVZP119R-sCGj&b7kuS0id6 zTc2qO?MFK}e)O)!?!(%zZ43MO)_k;MNS{}KH$Ix(MU|&G#ql9#kX3BTQaUQrr#Dgm zYr;pOZF+M~9It-YDe;sxYpWh#A>#*A7e@`FlPexj2I9DrA0Hwum2@8im6$cbMhK4L z6t`EX_Pc=XAYgns{{vo)m!XP4N%EC&wsfmTBI`GizC1#4;A3oi)m9Sgmam_&-dX-LD z64L6};5~RH2N&4_BjS>S9ohHk$65mL59Cv_-)M}^hI&-vb#4*a&yitw_ONbQQO5~L zcP7dwj9* zW$X0!tjpl;9p$W-uhYwZ>U+vEk|bQQPVcuMBa{3XI-h{kR9`!Lx&Z__j21o863>jc{_P zk+UZ>;uYEMDiJe*^A@5H~Tp?af0E6m8X-U%1Ws7=u|w~(Hnrt25{ysTh(U-^BGdo<6@y9mqG zI+#3mWZZ~RqU=6B*b!w|EE9HQIKg2@bXv0sH2CEmVN?f34W0pP_N}J->|13h8@hH8 zkIW`IlFcU&@XRJ!^2{gnsmu~3loHUaih;j-0N%8cux~*R;ZJ3f4}piSB&L0tUA^3} zMO%21=$M8xPVXyZaWZorBu+##nz@ShNSc$#8fDz)16~Y;9kSTNsaWHJ%2x&rRzwws zc@w*_mpbQw7v+UKQvz8h)-k+$ACGLSBrY{~4CR={)HkAX7EP+-zBFa6b0uyYhB2CQ z0~fNX7w~BgA+k;>Mn19^pSbs}31m-Lir8;o_1Vo5#fR&9`uqD98J_8Ev zrNcCt$O&mIOMF5(qTKD#{zzAjL|AsXc3q3g37&b1$}^$~ghYctZoUWc*-#;n=01sG z2RW~Kg5cS={6p3{x-z?DhP-lKiNl+)`+s>4=BP;l#pp#rF-u&Lb+XH6xqanAg1oZU zc_*%DSF^CPINMG1BAwevvQ@ZXjzo(p@rc8+v9ms$Q=2SD1l0!K*x=;RoDEf|p^rqn ztxqH)m_04Y@3VfN1D7#l*5t!CK1!ZY#29>CNPIX?M>o46P7X@qX#aWN?2rx z`}u)235kNTb`~rL=y|4LvPMJD?0uiQdYRtmJmE-KhZ|w*pkj6MN?aK?pt=hvW5rSi zlV_UBnGiafXL_B@ss!~uKLMuXjmfFU2wQlL@C=$xU&Mvn(0m zuVS(XCM-mJfT^OsBL;)5;wa7lwYZm?XG$XbRs})!Ua_U8ibzH#Fp7^!3|7Ik0x4;j z5}Y>Q42p(=8wQyS2TsOkAYupnXgv>sKt_f)1HUf_%=wH(&7p~itF@skN#~1P zd?Yoz7jN11Ww&k9IB-yT1FLA!MBSFbjYh+Xk+oTr2BTJumSVQ z$lASp$a$uTob)RMK<|L@X1}rXr4I7J5lalHLD8z+hpWxFz?iEA(|mK>XLcBTUXo#Y z06o5CyD2=%Za(5RBs8eb^et=w)^$*^e6zjA0x<#>j5HeeR&-s z8RS*JT|o&`cFV*XV#FEP5&L9L`Yl9D$YDJU1ovz>np_nS-FXxw0}qwOelwH+8>}!)lmv{jaCK0XRg;s;v zgTW2Z#Ls%Zf&_sAAm-Rg=d6u{TfgQ~{3!pS#%YFec{8vk4mF;SN9#nT`rS>!v=};& z)>V4vw~>%pLerJhd)Gxoh~YOchiwS2C5=Ck8n zC1<3G8S)@V{nfW8!20i^Mt6VO6ZS5rE&VsZXOwQAxFIRymbGq>VYrb`K@Z4DpqX^ z?E~#XRs-f>`AD%XL&hSTTxLW^|F8?d{oPMwtRlE1KzZ_wW^?z97#$@5&_ENk+dGqP zK)XVqrGYQJWq~GP0!|YtdJLp?AF}WDEB-k|t==(SzM^sZv}#v9&4k!^-n`$h7*s59 z)Mf^9ViYh|VT|?f6E84-;ZdstHEuMkfPNHx9GK&#`4i{i;7I@dp!Maa|IOrg4)eeY zd7449`X48Qx*-7?e0tIBSA15z3uON%ycFO8$qUpBphNNkuIj1=>jxyan+G}ajRJ(& zwQp(v4`u$!gjMt)ao^#Osecp(po7JLA%N5mZ>1Imq%QtL>KIUJRUq})A0qrL2Ivg1 z&sX0u$T847O}s78U2iv@ToqUzw|EY{=!HK!qF>~TtbH^=(wOk^whzp+e>CVo_MZm* z)rZ?2hF4%Rxb+Q4s{JY%U}ZjEZRb(-k7|%k|DzP7xSu_T)c+S<$mRuc)1O`V)$wHH zSP}o-ezQ6NB9S&6U4T(7F9QL1GSgIo58T5VR$zQoo-S zg!C;pjNiQ$|6Mg04CycZYBT3wh5T$1Furr2D$uP&H|K%l&e42@MTDJXfnh~DG)2s)_jLw z)!KILV1gQ+p28vGZ2NXDy5VeOI52=b+c#Y&xq_&NMY0#Z6u`@ zMaax~b6T@)T!+d=LR+5RVd>LX*C5C>)_FS3Rjy1n%$w5=oJ7q5PD%qO7ef(-xcHFm zs?ohQ?qK%$QpC0UAW|X(N-qleVkBx1pizVnQ89!LyWr;QW5lLWGlZ)7E?azIGs1WQ zSDF?irrIALY;<4u?90NiU&IP+M7*qtohffXiEzj&mgbN%x~?zxEn)}+@f<*83L#=) z2n|Q?t?i?rYp_$|Ho}N4TN{cOQ^k<%r4l{2?@F-G*Vpd4thF)it$+6Y|L4TgK{#zj3;!wPdP_g-W1CUw1&ROU-fscP8N`U{a2}f{N#q;3(*2{-#4RP4M7SWV@n$wNa6or^umw5by*=259LU@r>_84Q;?{)` z-EbtCLY|#M(puv}(k?>M!fHX%#@wcLfuyysht#?TsrA|U5LX9Ny1xI1kz86YN|`*a zQLb<%T{YE3-ev=+K7v&YszoYrsLM?4vb^E%?n_i2zy8i&MqWlKX{SAQ9@+Sb>&zUl;!6neS0?cv^ zcMTHNeD85xK}s6#rLbsRmk${(hDiXH!%u8UHdZ-Lg8#WXQzMLDRsDheAQ3-T;C}}H zZ*8VV|5}wl3(rWfIUoM7J=0;o+5gv{f!{#> zv>fs+D^?S{4Z+)+y9*xBJWH_H6wCTCuFR(DS<^~PO|&{j$@J6ZH}zw$gi~k^rr2;% z;rEiq{0~T84|AgLoLI2)r5n)C6=f21rZ*jM@%I! zmL}CRR*Od6K|6~d$z7h$f$r!fbh{JPYeBc#__RPZcWQ$unzqThG0)d(ccotVVp@qU z;052!_mAm2Vroa1vkC9F#+eWD9du(!`f-7wB?u42*g$0F7^Fc|owzDFJXXkGGIJ87 zpI;&CUL2(%`7xEuzCi4b%JVCU&BO=hzDJ|#o97QYp0~DQ3$-MPSxA-+QgEoZu7px# z1k1E?29Lip_#kFc5wJxl_TDyhfZ5X@k>HC_S|W4Dj%597N!z_9E7U+?C#{FPCI+MT zOTC{P_Dyzpe8KyuP1hjy(V%&r&_!DZLn49ba8t$k+`Z8=%YWB_OW>l&=lWhN0;!i* z4RjasJ}tT-FO&nRy`m(&V7wg^%r-pHOD~fru;|vDItI}FC}eY%je&Q#IKlAT`#Kg- z&`z-Zbb@u+C{l3KpPv*`ju-&$+l+^Nn}qX?(fmOBUCwcydrv#tg?*oi3?Sn2a;RSvYwLPlo;gPkV^U z*Rd%c_nyf%)}(h+!UT68>~%H!K@qIhQE<7QOX3VuUv@gI?)*pH@#NNUE{hU5pM$ylX{t(*l899@gc)&72Q&NyONkas9A-xjt7PZkueP|Ii$YRAthCs zmV;ddS)RlCNptaS3@KS^oBb04)pY0FE;c>QjzUtfjA5s8i*JbQ-;~z8)5|BhS8O}& zYogQR9lAjq_z<(wk1J2wHI1I+p!Q^4(?fdvOh5iq*87#GATfzx{#r`^qd>9xQb(-S zGzB*Thc_@7J)zb_pRErESPxG;-#*(j9>K&-vrj>A|4|H|Q?WooQs^4>++-J3PYY+H zR%yPMOL`^q?AvyION1?leEpp7np=r0Tl;u3Z7=HU48z**s$bn^!)wU<>Ev^Uc~gwe z5V>g9Do(uq*wvC#=EJ6{FnqP!#t{Pi6C*p3+~8S8!)xE#Fxj3(YFIlm6q7QDNqy54 z!`v6}X^9mu8TqCjV|FrpGF$I{@yX+A@8}>Gc+l3Yzkr7evK49l&FV%&!>Z@i(cbZV zCFvRIf%d}X@%-40$IaeF!}ax6+RdY2t2BYDbFJOVlOV;oN{@jLo*o{p>%$!a0-oom z=F{uLkdmk+M#|;nEa$E8Y!2^RL>1Zgq#oF!o0jgWvPO->Yk; zWI(l zIn|m+SF#S6BoUm#MISsGzbgjMtOd#T@rm}oMsI8QYjn>AQpCCA_hYDqdar%Jx9OX^?IFPBh@Wh?;o2>JP z{sR-#`tXw8YhD|75?S8xmAQ*NOJTWG3A4^(TU(*SM%7MuOF#QK*qC`dS;f1LC zNTS5>k&E(EjRtvuN%$?3zRdM=UfPGLQRe|G3iM^kBN9a}Y?^5j*{ybpq=UQ#hOtrS zdFo6B{_;!8x_9d@e%-KJI;G}}2UAG_?`xA%|=e*Uy zF7~PZNnb%> z`UK6!ID*Wk)UCjWbtG(_(`%NKEVHbCGaV^ZeRF7AbyU&o<`hY%_=uI8<--}Y%z~Qw z;h6K2_6xNq39W^@JH&;mMhPQ@P*lvg84c~L?st=A^cX}vL-i93744woTTue83DVY$ z-|62m@;n^lidCaxhxL+Lb3YtAm2vefB#UZj|J2JuQ-?scS0Nz*RmAZMt8UZzNv7tCJrsg6&aoPp9 z7Qf?p^zC45;K#k#umN{sMnH_}cBu|Sd@xA+90)p=xh5!15@Zd>sY2|n9uqX*-7 zsP@-3s0=XoF;vHv1z0lpe8mr&0$?&&b%Gp98PLSb!H4~YveGGO53q||c2Vj_Orxx~D3QJxHMUocl;9gC zuhjvx`^bU!E^*o#LGI+9y3xw?lEdZr(yHd>hV$9D>B^ErEwKMSuy@<%4l`Wg&8`oN z3+IE(j}OE7y4SS1*#{<}cv%05-;~}+nM18f{;RLf|a&K!c{vMaqYSf z#5TEbzYy#oy(R$cmzsKOzn$rNu=tb3nKzmcnJ&Ay<>Z-ukceWk$Za#ks%6!O2>69W zMZJWmZfgq$8D7#DBx_89@`gm22Lt|NT$E4mSo#V$JSNd(obE}BcuJmJW!w7$d zkuNUQf?)=3d-9vVz`*yQHZ1k0)W?vvUSqS!^_v40Sa3{ER-t2+nI9e7+p?ohT&mly zf!ff3q0xS{_w4%O#|T$ReY}5CRh`zON6Jq4OzEozP22vAeyD}TYx7i=eO-Rj;OLK~ zmPBEM(Xk_ItY*0voAo_jNT$@RquAUf^;P~!&z$!4Pc-3Wa1_sTNwnN!-2Kov$@dJp zw`)-1(a$<@JvWT_rp{R!+_$UWC4YC1gT{I)KT}9!uWhKk(IOkb_r2_b0hVeh6-8ZX zt?}HO)KYj4YkBSmFvgaqF>$r~gJ9!>M-|d{>P*L3!$#j->iW}{^(GPItHUO<{1RAK zZPMD#rtH$k(zMXJH$2R{4cLjPk2G?Jx@vNE7$Xesk{_&F2qAEMwT~3n>il?@B1}da zU#62+wFA}S{W^t5Z2;E^!`!OXy>v-icq|sQ>rb$RCe@vUjLEb2-{`A%>nw1P$QXe0 zF_^TtO58WSS>eqzJ+!64V7XE-SQ48t`71w6E7Z!XArvYDl1)f>1sw{I?b-}O)LxEV^287@i+IP8;tA@ z$iq+i7D7FG=jN>5XQQ-tlQy9{>cB4J3e8G3tv5<(Yjx`sUSeqIB5*wOh};Z~jz%Tg zTD}b=fCMVcNDi)9KX8)&@^d~ZWcd5Eq}rObr~`CJj5eGrWqd0j-X%pLAkFSX zv3}NJd57H1xL-NQ(^cFEt)Znp@bIfBQyB5M;F;JQhbzw$pEJTsMnDtaefgr-*Y9k% zE}1AWKM%g{#(qT&c0Ox>c3AyvK}1tC)`jRQn+5CJ5@FQ<_xIOlf?OmOaa(8 z62D_!GBedy2r&B8fltzABRrsSUgXrGb*ntsL0@G`)mz5V1YN?Y67V>Us%K(~?B2y- zs5WKJ%4dJKC2KeZFu3(OWqc1Q>QxDP##qK$t6V@L6h!h9iIR*bo_6UVf*#S zHT#nJsRH$Zb7pW!U?B}}rMB=hbNP~$@0FLQN;AD{Gn2LFl$;fMeBGDOK->o zXv7NYIi{Kqt*?~8`T;OB*t!I;P3E6Rya(F`n!X7FL>>v8_Cl)g1EwpiMn31Oc?XG= zyygZ0qVw-82G90f#tG(+qO=d3QQn4Av=e++=2!e+-3~DP%y)Qg)fL`Yx~- zDCP*7fWm+^(lyeVV>@jK7aMakeuo>Lzw8d7uey(9g*ZpdlhJD2)WVG~zB;+L02xJ* z#9IBI;lceOwPAfXHpFx_ReR|rB~LAp^}TY?ubjj)m~2~b_FnP;p>kiqP~o#AR4b{Z zf&DfA1R|v#H=b_wcA_%2s{{{RKKu&ye%9Vu`n(*W-D*qJ(fP?a z0nqtRElG)}R)Oz<=%SPd9zCDq&fEaD;n_+Zio^5tPew@a8Y-g3=lR~1u1aQTSn%s# zmQ%A6&j_J%1dv(i`Nu_-ye6k@knG6GX?cm6pTbHtR1!$671jc;4lKt@+L!XLpVCzz zwC|Wx0V%Nv!Ib;Jtr=dH=JPSVxNb#dM9>F&`Qmy6C{7TF>`oh>U$(b^>>z1CZBqHi zfWfc;%8?*t)iWiaE`@I-z}5w%w=2Ef#mu;C9~Mu*>MzT0?%Jwy{6p8I0)Z+zjaVzB zepF3L8b4%qOG?(?2|e*11$z>ZXM9u31n$Kn&*6FE2gW`D{a}$iHMkVm@mco=` z#U*1f`Fn^F-(Sl5SHh{i2DcGXT6oe42i1+;`o8>4(NU0m*Ym? z{j!!G{7HzXfuiZv#z^9;R*n5}vC14C0G}0*9wVqtk~Mz@5hu6(oI?ZQECF?V8egFY zP6B#MSe^*Ow#&Z;+xva2Uxh}m5(q_|fiw&cP^S`3=O@3z-~6yGe)4Pj&Cl;AKf9`b z`0WGyYz78U8U1Z;S117ItM?O5)bby>41U4&{Dun$;c~02=PVc)!NpDQ??jMgS2^$s zl_|2NW(Nk=J8skt$-Z!TSMH(8B)|UTDoMyS-Mw796X9pqc1TSG@~?B=)o;BCeC-i* z&q{*1K`=IMA0O)k1fpG^BmuStTj$D5t`f}^w6g1|JH`+sl1W&sZuw91TaQpJ;#{Br z0d1XgK^UNx@m)u31aT{e)SBH8cA1Z+5&hHrPPhVXZ%;IH9;96%z`>+?> zHEu;XqZND035Y}7<`I(&q;A4De^RT|^$j#i6gd0__%K4TGW)+7jJgzQTCEwKT$KZB zbV>+Li_tc4RsuLJX~T;H-IYh(am024x5T$6-))_#&vLymLSk;Dz+qtdGP2YT#J2Es zHCzP)JES~Ba`4k{-u*MtjA_LDG=JsTcofl$JFb>KSaS;Z@dN*p#Xo+&^~X(S?Zbrb zHZ!4%6=SYIaVV-Iu}xRmk~{mE#UTep?5eOc47x_9#o6U(e#v$a>oHIa9d z9`6eKP|(f5HGQNPu8%7keUIpYQNhZaGS`xtnJ=S`4OJu|OYzqZ-G&vY#PN?m?AvAf z>I$pn`z_zyfbX$9F#0m)o41JjpYD)NEYJN47Pv#U2k;*j6e6^NmHsnZD{DJOeFr;x zt5@KUbICH`pdY=50s{X3{gwPxNZyAD8)3I5a5jCtu3XUiF%2EeWSb9F|FjehA<`?U z3qjmPr^?{!X}jr(R*%2lF^J7s;|LC7a~Y+Qu$)%Ozu ztufk*sP*o7Qbz5$1_R^e>=c2`0j0c`LE4uguJ=S#<_4%fBvI+(OMR}TVh(=XtW-~7 z(Wk2T@F+~cvVkd)p$ADk=iB^Y?$~OhW0|iRN&EJDjrX{n9qZFRkM(179)!NY2xdvO z7P5+b?|JX3kX88O2B7)>_3r9=o{fay-PIohPfS4n(>uD>*8k5qzZXmLy8+8#LEy3J zlC?e+Cq^k=wAe+J!t{9vv=k4w+*QLDagsF6oy;EcBIBY;)e?;ws;@GW;g~0`0x#-bJ^Fzf1Ir;*^r#iGO^u7^vA98CW89o~hcFRSAoA6|pL*L@ zod>}*ix~Vk8B}Jmid0IAs6!!>sXWgEc*x`yU%V|Sg)jF0GMi5QrSrfp@U^hEp37(m zY#Wo!_n{k9dY|>vq3M;cOeHU@lG@c^TVMVlG}n_%&)9?yIl@*{a9ZLxJ?i)<`jKbb02!{q;EG@#SWw-!szD%M2Py-XKT1d;1crlB);Y z=VjKRCVa>5D4UUYb9s4vF*epP>+z`TDt**nX`StJ@lgh@wKd%)JPOei7uA%iZ9M;r z#{q{#)&op)sbu}RA(UHHP07T(-_xD^Oyy>7bgowICoP(B(D}z-Ybb9JP{dwRW?tzF zX_l1@I*2fs@4loXWs@hIR-3w4S-iShcKN(NIx6v9xXQ=dJ^AlnaQSgfNAd%P7Jz|* z!uZqB`c}4v|Ig9C9qk+0W7YzEj-B{j`wY&+T5!4}PNt)kK7C5YKtGLS`Yu4dG-8DN z?1ENqAqVY|3FUSQtCLaCo;dp;f-3b(%?vj3M=*Ua$&U&|<&PfJi$@;FAdi+4JT1TD z-~R1Pt?Ax!k>8hB_f#31#NK2PFXxDw@7!w}-(!EY@^0>{kjCd1%%t^>e)krwEbeeo zE@3|2m0=p#Ma4^c6M!n&gplP@DT{_qBm#T4+=)w8@pAb{C+4E;y^37&)AJ%ER^o-! z(mS)kKCc&-bT+FQ*7y0vJJS~8zS|Fm6G+!h;vgt*9S<|D8tcYLBQ03Ilob*`nCyVL ziM`u&VIBQaheQ;6V$i)Rb3b`jU<6Cq@Ij9r=8UZD$F((Y%zgDa(xY!s%Kq0kmh z-_+!kgryvXd0`6pPfns#(f|Q(cTs2F zQpC#A-q6xsTiM0h&`uMy;WO!f17K;@8^Qnpvw&}bXC?gcl?!am+O~!kc8rjRTl_uo zX?~9GIS?)Zgc1BP4GL-k9`f{?+qvK~GxV&i%)#9M5hv>AjpHSdd&WJ|9-B;Z$KKZ zzX5+g<>GIYzkgT%8zt%We?)=&=KgP#e_tK`#(;vdiiCpt57&x+1N{3E;ZJ}MQGWpZ nykPiy_P_VzKWDqe{xSR4?)*&p4&Xn~ME9Un0Y~q}gGc`#uVnH~ literal 40988 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 diff --git a/modems/ModemPool.py b/modems/ModemPool.py index db4d79f..adc3f36 100644 --- a/modems/ModemPool.py +++ b/modems/ModemPool.py @@ -2,15 +2,12 @@ import re import time import serial -from gsmmodem import GsmModem -from serial import Serial from definitions import BAUDRATE from error.SIMError import SIMError from logs.LogSender import LOG_APPOINTMENT_SUCCESS, SUBJECT_SIM_INFO from params import firebase_store_manager, oracle_log_sender from pojo.SimInfoPojo import SimInfoPojo -from pojo.serial_modem import SerialModem from utils.excel_reader import ExcelHelper from utils.operator import check_operator, Operator @@ -65,7 +62,8 @@ class ModemPool: if len(contact) > 0: phone_number = contact[0].phone self._db_manager.save_sim_info( - SimInfoPojo(phone=str(phone_number), ccid=ccid, position=position, operator=operator.value)) + SimInfoPojo(phone=str(phone_number), ccid=ccid, position=position, sim_position=sim_position, + slot_position=slot_position, operator=operator.value)) else: error_msg = "slot({}),sim({})".format(slot_position, sim_position) oracle_log_sender.send_contact_not_found(error_msg) @@ -91,7 +89,8 @@ class ModemPool: if phone_number: self._db_manager.save_sim_info( - SimInfoPojo(phone=phone_number, ccid=ccid, position=position, operator=operator.value)) + SimInfoPojo(phone=phone_number, ccid=ccid, position=position, slot_position=slot_position, + sim_position=sim_position, operator=operator.value)) self._log_sender.send_log(phone_number, source=self.TAG, subject=SUBJECT_SIM_INFO, type=LOG_APPOINTMENT_SUCCESS) # write the number to sim card's phonebook From f608a9f9a00935901d967adbe811dd7e19291d46 Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Sat, 26 Mar 2022 09:08:13 +0100 Subject: [PATCH 40/43] update contact list --- contact.xlsx | Bin 40988 -> 49264 bytes main.py | 21 +++++++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/contact.xlsx b/contact.xlsx index 9ed34e79b9d8b90f416a384cdaecff2f4f5f5a9d..a6d9670acddc13ac1a58d72e1c05e0055c068f71 100644 GIT binary patch literal 49264 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 literal 40988 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 diff --git a/main.py b/main.py index 978f38e..0fe92f7 100644 --- a/main.py +++ b/main.py @@ -210,14 +210,7 @@ def start_book(): logger.info("contact found for this ccid") signal = modem.modem.signalStrength logger.info("信号强度: " + str(signal)) - random_id_number = str(modem.phone_number)[1:len(str(modem.phone_number))] - PROXY_USERNAME = "panleicim-cc-fr-sid-" + random_id_number - logger.info("proxy_username is " + PROXY_USERNAME) - proxy = { - "server": params.PROXY_SERVER, - "username": PROXY_USERNAME, - "password": params.PROXY_PASSWORD - } + proxy = get_proxy(modem.phone_number) commandor.start_page(proxy=proxy, contact=modem.contact, on_ready_for_otp=on_ready_for_otp, on_sucess=on_success) start_to_handle_sms(modem) @@ -226,6 +219,18 @@ def start_book(): continue +def get_proxy(phone_number): + random_id_number = str(phone_number)[1:len(str(phone_number))] + proxy_username = "panleicim-cc-fr-sid-" + random_id_number + logger.info("proxy_username is " + proxy_username) + proxy = { + "server": params.PROXY_SERVER, + "username": proxy_username, + "password": params.PROXY_PASSWORD + } + return proxy + + if __name__ == '__main__': init_logger() logger = logging.getLogger() From 54b938cb3bb0f26da947589a1b82474b8b553dbb Mon Sep 17 00:00:00 2001 From: Lei PAN Date: Sat, 26 Mar 2022 09:23:02 +0100 Subject: [PATCH 41/43] change slot position --- reset_all_sim_card.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reset_all_sim_card.py b/reset_all_sim_card.py index 2bb813c..bc896a7 100644 --- a/reset_all_sim_card.py +++ b/reset_all_sim_card.py @@ -11,7 +11,7 @@ from main import card_pool def read_all_the_phone_number(): params.oracle_log_sender.send_log(msg="SIM卡自检开始", subject=LOG_SUBJECT_EVENT, type=TYPE_EVENT_RESET_ALL_SIM_CARDS) start_slot_number = 1 - end_slot_number = 26 + end_slot_number = 32 params.firebase_store_manager.clear_all_sim_info() for i in range(start_slot_number, end_slot_number + 1): card_pool.reset() From a7ba97772d7c9ea011b078de7818c007f1b7d8b0 Mon Sep 17 00:00:00 2001 From: Lei PAN Date: Sat, 26 Mar 2022 16:59:19 +0100 Subject: [PATCH 42/43] update the timeout contact --- contact.xlsx | Bin 49264 -> 47707 bytes main.py | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/contact.xlsx b/contact.xlsx index a6d9670acddc13ac1a58d72e1c05e0055c068f71..5be6c6f9b6c9c08a6f5c464c195ddf036fefac08 100644 GIT binary patch literal 47707 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 diff --git a/main.py b/main.py index 0fe92f7..5496924 100644 --- a/main.py +++ b/main.py @@ -174,8 +174,8 @@ def on_ready_for_otp(e: Event, commandor: CommandorPage): def start_book(): - start_slot_number = 27 - end_slot_number = 27 + start_slot_number = 1 + end_slot_number = 32 for i in range(start_slot_number, end_slot_number + 1): card_pool.reset() logger.info("will switch to " + str(i)) From 4790b3b9a1b8dd2ecf7be4bbff8e02d874a2f030 Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Sat, 26 Mar 2022 17:10:00 +0100 Subject: [PATCH 43/43] will merge with master --- commandor_page.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/commandor_page.py b/commandor_page.py index 7949b18..08138ca 100644 --- a/commandor_page.py +++ b/commandor_page.py @@ -75,7 +75,7 @@ class CommandorPage: def start_brower(self, proxy, pwright, user_agent): try: self.browser = pwright.firefox.launch(headless=False, timeout=90000, proxy=proxy) - print("user_agent is " + user_agent) + self.logger.info("user_agent is " + user_agent) self.page = self.browser.new_page( user_agent=user_agent) # hide webdriver information

g6>Ma`Ll!bu8aJHJKV;i)QM+;{B!-` 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 LI)eF*e*ymsHC Date: Fri, 25 Mar 2022 14:50:05 +0100 Subject: [PATCH 32/43] update contact list --- contact.xlsx | Bin 51063 -> 50965 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/contact.xlsx b/contact.xlsx index 211390ef5e37cf416b2e84c78ef1f6eb9092f5b9..71b635dfccdd14daa1ffd1e81d6da63e9c17b190 100644 GIT binary patch delta 44134 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 GK|BC6wP`m1 diff --git a/export_valid_profiles.py b/export_valid_profiles.py index b1d622a..6ec7e9e 100644 --- a/export_valid_profiles.py +++ b/export_valid_profiles.py @@ -38,8 +38,6 @@ def write_the_valid_profiles_to_excel(): mail=reserve_pojo.email, position=0) seed = 8 # number of characters in the string. # call random.choices() string module to find the string in Uppercase + numeric data. - ran = ''.join(random.choices(string.digits, k=seed)) - contact.mail = "{}_{}{}@163.com".format(contact.first_name, contact.last_name, ran) # contact.passport = get_random_id_number() # if contact.passport == None or len(contact.passport) == 0: # old_contact = [item for item in exist_contacts if item.mail == contact.mail] diff --git a/main.py b/main.py index d6945e8..80cb54e 100644 --- a/main.py +++ b/main.py @@ -18,6 +18,7 @@ from pojo.ReserveResultPojo import ReserveResultPojo from pojo.serial_modem import SerialModem from utils.excel_reader import ExcelHelper from utils.message_receiver import MessageReceiver +from utils.operator import check_operator, Operator OTP_TIMEOUT = 180 is_finished = False @@ -68,7 +69,9 @@ def timeout_occurred(serial_modem: SerialModem): def start_to_handle_sms(serial_modem: SerialModem): global current_gsm_modem current_gsm_modem = serial_modem.modem - # current_gsm_modem.deleteMultipleStoredSms(memory="SM") + if check_operator(serial_modem.ccid) == Operator.LYCAMOBILE: + # lycamobile + current_gsm_modem.deleteMultipleStoredSms(memory="SM") serial_modem.modem.smsReceivedCallback = handle_sms global is_finished is_finished = False diff --git a/utils/operator.py b/utils/operator.py new file mode 100644 index 0000000..9f9e0fe --- /dev/null +++ b/utils/operator.py @@ -0,0 +1,15 @@ +from enum import Enum + + +class Operator(Enum): + SFR = "SFR" + LYCAMOBILE = "LYCAMOBILE" + CHINA_TELECOM = "CHINA_TELECOM" + + +def check_operator(ccid: str) -> Operator: + if "893313" in ccid: + return Operator.LYCAMOBILE + elif "893310" in ccid: + return Operator.SFR + return Operator.CHINA_TELECOM diff --git a/utils/utils.py b/utils/utils.py new file mode 100644 index 0000000..e69de29 diff --git a/wait_for_sms.py b/wait_for_sms.py index 188d667..bc148ef 100644 --- a/wait_for_sms.py +++ b/wait_for_sms.py @@ -13,6 +13,7 @@ from modems.card_pool import CardPool from params import MODEM_POOL_PORTS, CARD_POOL_PORT from pojo.serial_modem import SerialModem from utils.excel_reader import ExcelHelper +from utils.operator import check_operator, Operator OTP_TIMEOUT = 40 commandor = CommandorPage() @@ -48,7 +49,7 @@ def timeout_occurred(serial_modem: SerialModem): def start_to_handle_sms(serial_modem: SerialModem): global current_gsm_modem current_gsm_modem = serial_modem.modem - if "893313" in serial_modem.ccid: + if check_operator(serial_modem.ccid) == Operator.LYCAMOBILE: # lycamobile current_gsm_modem.deleteMultipleStoredSms(memory="SM") serial_modem.modem.smsReceivedCallback = handle_sms @@ -94,7 +95,7 @@ def start_book(): modem_pool.reset_all_modems() modem_list = init_modems() # create listeners for chaque modem - # read the contact, and contact the 2 objects together + # read the contact, and merge the 2 objects together excel_reader = ExcelHelper() contacts = excel_reader.read_contacts() global current_sim_position From cd71577e71c2a81f7709901cdfe0502e90d2f5d9 Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Thu, 24 Mar 2022 10:15:44 +0100 Subject: [PATCH 17/43] use same rabittmq connection --- commandor_page.py | 14 ++------------ modems/ModemPool.py | 2 +- params.py | 5 +++++ pojo/ReserveResultPojo.py | 7 ++++++- reset_all_sim_card.py | 1 - utils/message_receiver.py | 11 +++-------- 6 files changed, 17 insertions(+), 23 deletions(-) diff --git a/commandor_page.py b/commandor_page.py index 809f51f..6843497 100644 --- a/commandor_page.py +++ b/commandor_page.py @@ -4,7 +4,6 @@ import string import threading import time -import pika from playwright.sync_api import sync_playwright import params @@ -136,25 +135,17 @@ class CommandorPage: id = url.split("/")[-1] result = ReserveResultPojo(type=PublishType.SUCCESS, phone=contact.phone, message=message, url=url, firstName=contact.first_name, lastName=contact.last_name, email=contact.mail, - passport=contact.passport) + passport=contact.passport, ccid=contact.ccid) result.id = id - _credentials = pika.PlainCredentials('scrapy_rabbitmq', '4x!hReCbA5v3heKWfPJV-Y') - connection = pika.BlockingConnection( - pika.ConnectionParameters(host=params.rabittMQ_host, - port=params.rabittMQ_port, - credentials=_credentials)) - channel = connection.channel() + channel = params.rabittmq_connection.channel() # default exchange, for 'hello' queue print("will publish message:" + result.to_json()) channel.basic_publish(exchange='', routing_key=APPOINTMENT_QUEUE, body=result.to_json()) - connection.close() def get_random_id_number_for_proxy() -> str: - # write_the_valid_profiles_to_excel() S = 8 # number of characters in the string. - # call random.choices() string module to find the string in Uppercase + numeric data. ran = ''.join(random.choices(string.digits, k=S)) id_number = str(ran) print("The randomly generated string is : " + str(ran)) # print the random data @@ -162,7 +153,6 @@ def get_random_id_number_for_proxy() -> str: def get_random_id_number() -> str: - # write_the_valid_profiles_to_excel() S = 8 # number of characters in the string. ran = ''.join(random.choices(string.digits, k=S)) id_number = "57" + str(ran) diff --git a/modems/ModemPool.py b/modems/ModemPool.py index 3edeab3..54685a6 100644 --- a/modems/ModemPool.py +++ b/modems/ModemPool.py @@ -67,7 +67,7 @@ class ModemPool: ccid_group = re.search("[0-9F]+", response) ccid = ccid_group.group(0) sim_position = index + 1 - position = (slot_position - 1) * 15 + sim_position + position = (slot_position - 1) * len(self._port_list) + sim_position if phone_number: self._db_manager.save_sim_info(SimInfoPojo(phone=phone_number, ccid=ccid, position=position)) self._log_sender.send_log(phone_number, source=self.TAG, subject=SUBJECT_SIM_INFO, diff --git a/params.py b/params.py index 1030079..37c8c6b 100644 --- a/params.py +++ b/params.py @@ -1,3 +1,5 @@ +import pika + from db.DbManager import DataManager from logs.LogSender import LogSender @@ -33,3 +35,6 @@ PROXY_PASSWORD = "M3PZAXgW5V27" # rabittmq rabittMQ_host = "rabbitmq.lpaconsulting.fr" rabittMQ_port = 6672 +_credentials = pika.PlainCredentials('scrapy_rabbitmq', '4x!hReCbA5v3heKWfPJV-Y') +rabittmq_connection = pika.BlockingConnection( + pika.ConnectionParameters(host='rabbitmq.lpaconsulting.fr', port=6672, credentials=_credentials)) \ No newline at end of file diff --git a/pojo/ReserveResultPojo.py b/pojo/ReserveResultPojo.py index ecee8c6..3f6fee5 100644 --- a/pojo/ReserveResultPojo.py +++ b/pojo/ReserveResultPojo.py @@ -23,6 +23,7 @@ class ReserveResultPojo: passport: str = "" slot_position = None sim_position = None + ccid: str = "" @staticmethod def from_firestore_dict(source): @@ -49,6 +50,9 @@ class ReserveResultPojo: if 'passport' in source: passport = source['passport'] result.passport = passport + if 'ccid' in source: + ccid = source['ccid'] + result.ccid = ccid result.id = id return result @@ -64,7 +68,8 @@ class ReserveResultPojo: u'passport': self.passport, u'url': self.url, u'sim_position': self.sim_position, - u'slot_position': self.slot_position + u'slot_position': self.slot_position, + u'ccid': self.ccid } return dest diff --git a/reset_all_sim_card.py b/reset_all_sim_card.py index f56462f..104f616 100644 --- a/reset_all_sim_card.py +++ b/reset_all_sim_card.py @@ -11,7 +11,6 @@ def read_all_the_phone_number(): params.oracle_log_sender.send_log(msg="SIM卡自检开始", subject=LOG_SUBJECT_EVENT, type=TYPE_EVENT_RESET_ALL_SIM_CARDS) slot_number = 16 slot_sum = 27 - # card_pool.switch_to_slot(29) params.firebase_store_manager.clear_all_sim_info() for i in range(slot_number, slot_sum + 1): card_pool.reset() diff --git a/utils/message_receiver.py b/utils/message_receiver.py index 3c4368c..f026a27 100644 --- a/utils/message_receiver.py +++ b/utils/message_receiver.py @@ -1,24 +1,19 @@ -import logging import threading -from datetime import datetime -import pika +from params import rabittmq_connection APPOINTMENT_QUEUE = "APPOINTMENT_QUEUE" class MessageReceiver: - def __init__(self): - self._credentials = pika.PlainCredentials('scrapy_rabbitmq', '4x!hReCbA5v3heKWfPJV-Y') def start_listener(self, callback): t = threading.Thread(target=self._run, args=(callback,)) t.start() def _run(self, callback): - connection = pika.BlockingConnection( - pika.ConnectionParameters(host='rabbitmq.lpaconsulting.fr', port=6672, credentials=self._credentials)) - channel = connection.channel() + + channel = rabittmq_connection.channel() channel.queue_declare(queue=APPOINTMENT_QUEUE) channel.basic_consume(queue=APPOINTMENT_QUEUE, auto_ack=True, From d0d3d59f276b2eb174ef273f2084c58c4af2b4b9 Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Thu, 24 Mar 2022 10:26:44 +0100 Subject: [PATCH 18/43] add logs for contact not found error --- commandor_page.py | 2 +- logs/LogSender.py | 6 +++++- main.py | 2 ++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/commandor_page.py b/commandor_page.py index 6843497..45f7573 100644 --- a/commandor_page.py +++ b/commandor_page.py @@ -7,7 +7,7 @@ import time from playwright.sync_api import sync_playwright import params -from params import PROXY_SERVER, PROXY_USERNAME, PROXY_PASSWORD +from params import PROXY_SERVER, PROXY_PASSWORD from pojo.ReserveResultPojo import ReserveResultPojo, PublishType from pojo.contact_pojo import ContactPojo from utils.excel_reader import ExcelHelper diff --git a/logs/LogSender.py b/logs/LogSender.py index 7b3b1bd..76ef3da 100644 --- a/logs/LogSender.py +++ b/logs/LogSender.py @@ -25,6 +25,7 @@ LOG_ERROR = "ERROR" LOG_TYPE_INFO = "INFO" LOG_APPOINTMENT_ERROR = "APPOINTMENT_ERROR" LOG_APPOINTMENT_TIMEOUT = "TIMEOUT" +LOG_APPOINTMENT_CONTACT_NOT_FOUND = "CONTACT_NOT_FOUND" LOG_APPOINTMENT_SUCCESS = "SUCCESS" @@ -65,10 +66,13 @@ class LogSender: msg = "phone:{}, sms:{}".format(phone, sms_text) self.send_log(msg=msg, subject=LOG_SUBJECT_SMS, type=TYPE_SMS_RECEIVED) - def send_timeout_log(self,serial_modem: SerialModem): + def send_timeout_log(self, serial_modem: SerialModem): msg = "phone:{}, ccid:{}".format(serial_modem.phone_number, serial_modem.ccid) self.send_log(msg, type=LOG_APPOINTMENT_TIMEOUT) + def send_contact_not_found(self, msg: str): + self.send_log(msg, subject=SUBJECT_SIM_INFO, type=LOG_APPOINTMENT_CONTACT_NOT_FOUND) + if __name__ == '__main__': init_logger() diff --git a/main.py b/main.py index 80cb54e..eba90a9 100644 --- a/main.py +++ b/main.py @@ -190,6 +190,8 @@ def start_book(): modem.contact = contact[0] else: logger.info("contact not found for this ccid") + error_msg = "slot({}),sim({})".format(i, current_sim_position) + oracle_log_sender.send_contact_not_found(error_msg) modem.modem.close() continue if modem.contact: From 13a17e3d79efd9f416c257a53a0d0e4a8b09cad2 Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Thu, 24 Mar 2022 10:57:57 +0100 Subject: [PATCH 19/43] use listener instead of rabittmq --- commandor_page.py | 13 +++++-------- main.py | 14 +++++++++++++- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/commandor_page.py b/commandor_page.py index 45f7573..d35064d 100644 --- a/commandor_page.py +++ b/commandor_page.py @@ -29,8 +29,9 @@ class CommandorPage: def __init__(self): self.otp_value = None - def _run(self, e: threading.Event, proxy, contact: ContactPojo, on_ready_for_otp): + def _run(self, e: threading.Event, proxy, contact: ContactPojo, on_ready_for_otp, on_success): self.contact = contact + self.on_success_listener = on_success with sync_playwright() as pwright: firefox_user_agents = filter(lambda user_agent: "firefox" in user_agent.lower(), user_agent_list) firefox_user_agents_list = list(firefox_user_agents) @@ -75,9 +76,9 @@ class CommandorPage: time.sleep(2) # check and send successful event - def start_page(self, proxy, contact: ContactPojo, on_ready_for_otp) -> threading.Event: + def start_page(self, proxy, contact: ContactPojo, on_ready_for_otp, on_sucess) -> threading.Event: e = threading.Event() - t = threading.Thread(target=self._run, args=(e, proxy, contact, on_ready_for_otp)) + t = threading.Thread(target=self._run, args=(e, proxy, contact, on_ready_for_otp, on_sucess)) t.start() return e @@ -137,11 +138,7 @@ class CommandorPage: firstName=contact.first_name, lastName=contact.last_name, email=contact.mail, passport=contact.passport, ccid=contact.ccid) result.id = id - channel = params.rabittmq_connection.channel() - # default exchange, for 'hello' queue - print("will publish message:" + result.to_json()) - channel.basic_publish(exchange='', routing_key=APPOINTMENT_QUEUE, - body=result.to_json()) + self.on_success_listener(result) def get_random_id_number_for_proxy() -> str: diff --git a/main.py b/main.py index eba90a9..eaf30c0 100644 --- a/main.py +++ b/main.py @@ -151,6 +151,18 @@ def on_message_received(ch, method, properties, body): is_finished = True +def on_success(result: ReserveResultPojo): + logger.info("on_success called.") + result.sim_position = current_sim_position + result.slot_position = current_card_pool_slot + logger.info(result) + firebase_store_manager.save(result) + oracle_log_sender.send_appoint_result(result) + # set the flag to True + global is_finished + is_finished = True + + def start_listen(): logger.info("start to listen to message queue") receiver = MessageReceiver() @@ -206,7 +218,7 @@ def start_book(): "password": params.PROXY_PASSWORD } commandor.start_page(proxy=proxy, contact=modem.contact, - on_ready_for_otp=on_ready_for_otp) + on_ready_for_otp=on_ready_for_otp, on_sucess=on_success) start_to_handle_sms(modem) except Exception as error: print(error) From 034bae2fd906237a2069240b709ca1fa8252cf45 Mon Sep 17 00:00:00 2001 From: Lei PAN Date: Thu, 24 Mar 2022 10:58:39 +0100 Subject: [PATCH 20/43] set slot position --- main.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/main.py b/main.py index eba90a9..92226db 100644 --- a/main.py +++ b/main.py @@ -158,17 +158,19 @@ def start_listen(): def on_ready_for_otp(e: Event, commandor: CommandorPage): - print("on_ready_for_otp() called.") + logger.info("on_ready_for_otp() called.") global thread_event thread_event = e def start_book(): - slot_number = 3 - slot_sum = 8 + slot_number = 1 + slot_sum = 1 for i in range(slot_number, slot_sum + 1): card_pool.reset() logger.info("will switch to " + str(i)) + global current_card_pool_slot + current_card_pool_slot = i card_pool.switch_to_slot(i) modem_pool = ModemPool(get_devices_ports()) modem_pool.reset_all_modems() From 13224a08d52d8d1bc12d600b644876881818a1ba Mon Sep 17 00:00:00 2001 From: Lei PAN Date: Thu, 24 Mar 2022 15:48:41 +0100 Subject: [PATCH 21/43] will merge gsm in project --- commandor_page.py | 31 +++++++++++++++++++++---------- main.py | 11 ++++++----- wait_for_sms.py | 5 ++--- 3 files changed, 29 insertions(+), 18 deletions(-) diff --git a/commandor_page.py b/commandor_page.py index d35064d..0090d82 100644 --- a/commandor_page.py +++ b/commandor_page.py @@ -28,6 +28,7 @@ CONFIRMED_MESSAGE = "Your request for a Leather Goods appointment has been regis class CommandorPage: def __init__(self): self.otp_value = None + self.logger = logging.getLogger("CommandorPage") def _run(self, e: threading.Event, proxy, contact: ContactPojo, on_ready_for_otp, on_success): self.contact = contact @@ -41,14 +42,7 @@ class CommandorPage: # elif "firefox" in user_agent.lower(): # self.browser = pwright.firefox.launch(headless=False, timeout=90000, proxy=proxy) # else: - self.browser = pwright.firefox.launch(headless=False, timeout=90000, proxy=proxy) - print("user_agent is " + user_agent) - self.page = self.browser.new_page( - user_agent=user_agent) - # hide webdriver information - self.page.add_init_script("""() => Object.defineProperty(navigator,'webdriver',{get: () => undefined}""") - self.page.on("load", self._on_page_loaded) - self.page.goto(RDV_URL, timeout=90000) + self.start_brower(proxy, pwright, user_agent) self._setPhoneCountry() self._setPhoneNumber(contact.phone) self._setName(contact.last_name, contact.first_name) @@ -63,19 +57,36 @@ class CommandorPage: on_ready_for_otp(e, self) event_is_set = e.wait() logging.info('event set: %s', event_is_set) - self.fill_otp(self.otp_value) + if self.otp_value: + self.fill_otp(self.otp_value) self.clickOnValidBtn() otp_sent = self.page.locator(MESSAGE_FIELD_CLASS) otp_sent.wait_for(state='visible') message = self.page.content() print("message is:" + message) + time.sleep(2) if CONFIRMED_MESSAGE in message: # publish the successful message print("url is " + self.page.url) self.publish_message_to_queue(contact, message, self.page.url) - time.sleep(2) + else: + print("timeout") + self.reset_air_plan_mode() # check and send successful event + def start_brower(self, proxy, pwright, user_agent): + try: + self.browser = pwright.firefox.launch(headless=False, timeout=90000, proxy=proxy) + print("user_agent is " + user_agent) + self.page = self.browser.new_page( + user_agent=user_agent) + # hide webdriver information + self.page.add_init_script("""() => Object.defineProperty(navigator,'webdriver',{get: () => undefined}""") + self.page.on("load", self._on_page_loaded) + self.page.goto(RDV_URL, timeout=90000) + except Exception as error: + self.logger.exception(error) + def start_page(self, proxy, contact: ContactPojo, on_ready_for_otp, on_sucess) -> threading.Event: e = threading.Event() t = threading.Thread(target=self._run, args=(e, proxy, contact, on_ready_for_otp, on_sucess)) diff --git a/main.py b/main.py index 621324a..8ace3fe 100644 --- a/main.py +++ b/main.py @@ -62,6 +62,8 @@ def timeout_occurred(serial_modem: SerialModem): firebase_store_manager.save_timeout_contact(serial_modem.contact) oracle_log_sender.send_timeout_log(serial_modem) logger.info("will close timeout modem") + global thread_event + thread_event.set() serial_modem.modem.close() commandor.reset_air_plan_mode() @@ -176,8 +178,8 @@ def on_ready_for_otp(e: Event, commandor: CommandorPage): def start_book(): - slot_number = 1 - slot_sum = 1 + slot_number = 2 + slot_sum = 2 for i in range(slot_number, slot_sum + 1): card_pool.reset() logger.info("will switch to " + str(i)) @@ -191,14 +193,13 @@ def start_book(): excel_reader = ExcelHelper() contacts = excel_reader.read_contacts() global current_sim_position - current_sim_position = 1 + current_sim_position = 0 for modem in modem_list: current_sim_position = current_sim_position + 1 try: - # get contact for current modem modem.get_ccid() # find the contact with ccid - contact = [contact for contact in contacts if contact.ccid.replace("F", "") == modem.ccid] + contact = [contact for contact in contacts if contact.ccid.replace("F", "") == modem.ccid.replace("F", "")] if len(contact) > 0: modem.phone_number = contact[0].phone modem.contact = contact[0] diff --git a/wait_for_sms.py b/wait_for_sms.py index bc148ef..512aeef 100644 --- a/wait_for_sms.py +++ b/wait_for_sms.py @@ -85,8 +85,8 @@ def init_modems() -> list: def start_book(): - slot_number = 1 - slot_sum = 27 + slot_number = 2 + slot_sum = 2 for i in range(slot_number, slot_sum + 1): card_pool.reset() logger.info("will switch to " + str(i)) @@ -94,7 +94,6 @@ def start_book(): modem_pool = ModemPool(get_devices_ports()) modem_pool.reset_all_modems() modem_list = init_modems() - # create listeners for chaque modem # read the contact, and merge the 2 objects together excel_reader = ExcelHelper() contacts = excel_reader.read_contacts() From af7cf1320a8943279cb2efe80a6c3b53c9a16b14 Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Thu, 24 Mar 2022 22:43:47 +0100 Subject: [PATCH 22/43] use proxy to check results --- check_results.py | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/check_results.py b/check_results.py index 884a2a7..e5c6632 100644 --- a/check_results.py +++ b/check_results.py @@ -1,14 +1,18 @@ +import random from enum import Enum from playwright.sync_api import sync_playwright import params +from commandor_page import get_random_id_number_for_proxy from logs.LogSender import TYPE_EVENT_CHECK_RESULTS, LOG_SUBJECT_EVENT from pojo.ReserveResultPojo import ReserveResultPojo +from utils.excel_reader import ExcelHelper SORRY_SENTENCE = "nous sommes sincèrement désolés de n'avoir pu vous satisfaire cette fois-ci" PENDING_SENTENCE = "Ce soir, entre 20:00 et 20:30, vous obtiendrez une réponse par e-mail." +user_agent_list = ExcelHelper().read_user_agent_list() class ResultEnum(Enum): ACCEPTED = "ACCEPTED" @@ -23,24 +27,35 @@ def check_result_page(url) -> ResultEnum: def run(playwright, url) -> ResultEnum: - browser = playwright.webkit.launch(headless=False) + browser = playwright.firefox.launch(headless=False) + PROXY_USERNAME = "panleicim-cc-fr-sid-" + get_random_id_number_for_proxy() + proxy = { + "server": params.PROXY_SERVER, + "username": PROXY_USERNAME, + "password": params.PROXY_PASSWORD + } + firefox_user_agents = filter(lambda user_agent: "firefox" in user_agent.lower(), user_agent_list) + firefox_user_agents_list = list(firefox_user_agents) + user_agent = random.choice(firefox_user_agents_list) page = browser.new_page( - user_agent="Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.87 Mobile Safari/537.36") + user_agent=user_agent, + proxy=proxy) + page.add_init_script("""() => Object.defineProperty(navigator,'webdriver',{get: () => undefined}""") url_to_check = url.replace("register/", "") url_to_check = url_to_check + "?lang=fr" print(url_to_check) - page.goto(url_to_check) + page.goto(url_to_check,timeout=90000) content = page.content() print(content) browser.close() if SORRY_SENTENCE in content: - print("result is REFUSED") + print("status is REFUSED") return ResultEnum.REFUSED elif PENDING_SENTENCE in content: - print("result is PENDING") + print("status is PENDING") return ResultEnum.PENDING else: - print("result is ACCEPTED") + print("status is ACCEPTED") return ResultEnum.ACCEPTED From 94a602c7912e7f6284b86e116737f458641d34ff Mon Sep 17 00:00:00 2001 From: Lei PAN Date: Thu, 24 Mar 2022 23:20:33 +0100 Subject: [PATCH 23/43] complete the check sim function --- gsmmodem/__init__.py | 17 - gsmmodem/compat.py | 22 - gsmmodem/exceptions.py | 134 --- gsmmodem/gprs.py | 96 -- gsmmodem/models/Call.py | 80 -- gsmmodem/models/IncomingCall.py | 40 - gsmmodem/models/ReceivedSms.py | 27 - gsmmodem/models/SentSms.py | 27 - gsmmodem/models/Sms.py | 24 - gsmmodem/models/StatusReport.py | 24 - gsmmodem/models/__init__.py | 0 gsmmodem/modem.py | 1548 ------------------------------- gsmmodem/pdu.py | 953 ------------------- gsmmodem/serial_comms.py | 147 --- gsmmodem/util.py | 130 --- logs/AppLogging.py | 2 +- modems/ModemPool.py | 76 +- reset_all_sim_card.py | 5 +- wait_for_sms.py | 21 +- 19 files changed, 61 insertions(+), 3312 deletions(-) delete mode 100644 gsmmodem/__init__.py delete mode 100644 gsmmodem/compat.py delete mode 100644 gsmmodem/exceptions.py delete mode 100644 gsmmodem/gprs.py delete mode 100644 gsmmodem/models/Call.py delete mode 100644 gsmmodem/models/IncomingCall.py delete mode 100644 gsmmodem/models/ReceivedSms.py delete mode 100644 gsmmodem/models/SentSms.py delete mode 100644 gsmmodem/models/Sms.py delete mode 100644 gsmmodem/models/StatusReport.py delete mode 100644 gsmmodem/models/__init__.py delete mode 100644 gsmmodem/modem.py delete mode 100644 gsmmodem/pdu.py delete mode 100644 gsmmodem/serial_comms.py delete mode 100644 gsmmodem/util.py diff --git a/gsmmodem/__init__.py b/gsmmodem/__init__.py deleted file mode 100644 index 9b65886..0000000 --- a/gsmmodem/__init__.py +++ /dev/null @@ -1,17 +0,0 @@ -""" Package that allows easy control of an attached GSM modem - -The main class for controlling a modem is GsmModem, which can be imported -directly from this module. - -Other important and useful classes are: -gsmmodem.modem.IncomingCall: wraps an incoming call and passed to the incoming call hanndler callback function -gsmmodem.modem.ReceivedSms: wraps a received SMS message and passed to the sms received hanndler callback function -gsmmodem.modem.SentSms: returned when sending SMS messages; used for tracking the status of the SMS message - -All python-gsmmodem-specific exceptions are defined in the gsmmodem.modem.exceptions package. - -@author: Francois Aucamp -@license: LGPLv3+ -""" - -from .modem import GsmModem diff --git a/gsmmodem/compat.py b/gsmmodem/compat.py deleted file mode 100644 index 46d53ea..0000000 --- a/gsmmodem/compat.py +++ /dev/null @@ -1,22 +0,0 @@ -""" Contains monkey-patched equivalents for a few commonly-used Python 2.7-and-higher functions. -Used to provide backwards-compatibility with Python 2.6 -""" -import sys -if sys.version_info[0] == 2 and sys.version_info[1] < 7: - import threading - - # threading.Event.wait() always returns None in Python < 2.7 so we need to patch it - if hasattr(threading, '_Event'): # threading.Event is a function that return threading._Event - # This is heavily Python-implementation-specific, so patch where we can, otherwise leave it - def wrapWait(func): - def newWait(self, timeout=None): - func(self, timeout) - return self.is_set() - return newWait - threading._Event.wait = wrapWait(threading._Event.wait) - else: - raise ImportError('Could not patch this version of Python 2.{0} for compatibility with python-gsmmodem.'.format(sys.version_info[1])) -if sys.version_info[0] == 2: - str = str -else: - str = lambda x: x \ No newline at end of file diff --git a/gsmmodem/exceptions.py b/gsmmodem/exceptions.py deleted file mode 100644 index 6882524..0000000 --- a/gsmmodem/exceptions.py +++ /dev/null @@ -1,134 +0,0 @@ -""" Module defines exceptions used by gsmmodem """ - -class GsmModemException(Exception): - """ Base exception raised for error conditions when interacting with the GSM modem """ - - -class TimeoutException(GsmModemException): - """ Raised when a write command times out """ - - def __init__(self, data=None): - """ @param data: Any data that was read was read before timeout occurred (if applicable) """ - super(TimeoutException, self).__init__(data) - self.data = data - - -class InvalidStateException(GsmModemException): - """ Raised when an API method call is invoked on an object that is in an incorrect state """ - - -class InterruptedException(InvalidStateException): - """ Raised when execution of an AT command is interrupt by a state change. - May contain another exception that was the cause of the interruption """ - - def __init__(self, message, cause=None): - """ @param cause: the exception that caused this interruption (usually a CmeError) """ - super(InterruptedException, self).__init__(message) - self.cause = cause - - -class CommandError(GsmModemException): - """ Raised if the modem returns an error in response to an AT command - - May optionally include an error type (CME or CMS) and -code (error-specific). - """ - - _description = '' - - def __init__(self, command=None, type=None, code=None): - self.command = command - self.type = type - self.code = code - if type != None and code != None: - super(CommandError, self).__init__('{0} {1}{2}'.format(type, code, ' ({0})'.format(self._description) if len(self._description) > 0 else '')) - elif command != None: - super(CommandError, self).__init__(command) - else: - super(CommandError, self).__init__() - - -class CmeError(CommandError): - """ ME error result code : +CME ERROR: - - Issued in response to an AT command - """ - - def __new__(cls, *args, **kwargs): - # Return a specialized version of this class if possible - if len(args) >= 2: - code = args[1] - if code == 11: - return PinRequiredError(args[0]) - elif code == 16: - return IncorrectPinError(args[0]) - elif code == 12: - return PukRequiredError(args[0]) - return super(CmeError, cls).__new__(cls, *args, **kwargs) - - def __init__(self, command, code): - super(CmeError, self).__init__(command, 'CME', code) - - -class SecurityException(CmeError): - """ Security-related CME error """ - - def __init__(self, command, code): - super(SecurityException, self).__init__(command, code) - - -class PinRequiredError(SecurityException): - """ Raised if an operation failed because the SIM card's PIN has not been entered """ - - _description = 'SIM card PIN is required' - - def __init__(self, command, code=11): - super(PinRequiredError, self).__init__(command, code) - - -class IncorrectPinError(SecurityException): - """ Raised if an incorrect PIN is entered """ - - _description = 'Incorrect PIN entered' - - def __init__(self, command, code=16): - super(IncorrectPinError, self).__init__(command, code) - - -class PukRequiredError(SecurityException): - """ Raised an operation failed because the SIM card's PUK is required (SIM locked) """ - - _description = "PUK required (SIM locked)" - - def __init__(self, command, code=12): - super(PukRequiredError, self).__init__(command, code) - - -class CmsError(CommandError): - """ Message service failure result code: +CMS ERROR : - - Issued in response to an AT command - """ - - def __new__(cls, *args, **kwargs): - # Return a specialized version of this class if possible - if len(args) >= 2: - code = args[1] - if code == 330: - return SmscNumberUnknownError(args[0]) - return super(CmsError, cls).__new__(cls, *args, **kwargs) - - def __init__(self, command, code): - super(CmsError, self).__init__(command, 'CMS', code) - - -class SmscNumberUnknownError(CmsError): - """ Raised if the SMSC (service centre) address is missing when trying to send an SMS message """ - - _description = 'SMSC number not set' - - def __init__(self, command, code=330): - super(SmscNumberUnknownError, self).__init__(command, code) - - -class EncodingError(GsmModemException): - """ Raised if a decoding- or encoding operation failed """ diff --git a/gsmmodem/gprs.py b/gsmmodem/gprs.py deleted file mode 100644 index af164f4..0000000 --- a/gsmmodem/gprs.py +++ /dev/null @@ -1,96 +0,0 @@ -# -*- coding: utf8 -*- - -""" GPRS/Data-specific classes - -BRANCH: mms - -PLEASE NOTE: *Everything* in this file (PdpContext, GprsModem class, etc) is experimental. -This is NOT meant to be used in production in any way; the API is completely unstable, -no unit tests will be written for this in the forseeable future, and stuff may generally -break and cause riots. Please do not file bug reports against this branch unless you -have a patch to go along with it, but even then: remember that this entire "mms" branch -is exploratory; I simply want to see what the possibilities are with it. - -Use the "main" branch, and the GsmModem class if you want to build normal applications. -""" - -import re - -from .util import allLinesMatchingPattern -from .modem import GsmModem - -class PdpContext(object): - """ Packet Data Protocol (PDP) context parameter values """ - def __init__(self, cid, pdpType, apn, pdpAddress=None, dataCompression=0, headerCompression=0): - """ Construct a new Packet Data Protocol context - - @param cid: PDP Context Identifier - specifies a particular PDP context definition - @type cid: int - @param pdpType: the type of packet data protocol (IP, PPP, IPV6, etc) - @type pdpType: str - @param apn: Access Point Name; logical name used to select the GGSN or external packet data network - @type apn: str - @param pdpAddress: identifies the MT in the address space applicable to the PDP. If None, a dynamic address may be requested. - @type pdpAddress: str - @param dataCompression: PDP data compression; 0 == off, 1 == on - @type dataCompression: int - @param headerCompression: PDP header compression; 0 == off, 1 == on - @type headerCompression: int - """ - self.cid = cid - self.pdpType = pdpType - self.apn = apn - self.pdpAddress = pdpAddress - self.dataCompression = dataCompression - self.headerCompression = headerCompression - - -class GprsModem(GsmModem): - """ EXPERIMENTAL: Specialized version of GsmModem that includes GPRS/data-specific commands """ - - @property - def pdpContexts(self): - """ Currently-defined Packet Data Protocol (PDP) context list - - PDP paramter values returned include PDP type (IP, IPV6, PPP, X.25 etc), APN, - data compression, header compression, etc. - - @return: a list of currently-defined PDP contexts - """ - result = [] - cgdContResult = self.write('AT+CGDCONT?') - matches = allLinesMatchingPattern(re.compile(r'^\+CGDCONT:\s*(\d+),"([^"]+)","([^"]+)","([^"]+)",(\d+),(\d+)'), cgdContResult) - for cgdContMatch in matches: - cid, pdpType, apn, pdpAddress, dataCompression, headerCompression = cgdContMatch.groups() - pdpContext = PdpContext(cid, pdpType, apn, pdpAddress, dataCompression, headerCompression) - result.append(pdpContext) - return result - - @property - def defaultPdpContext(self): - """ @return: the default PDP context, or None if not defined """ - pdpContexts = self.pdpContexts - return pdpContexts[0] if len(pdpContexts) > 0 else None - @defaultPdpContext.setter - def defaultPdpContext(self, pdpContext): - """ Set the default PDP context (or clear it by setting it to None) """ - self.write('AT+CGDCONT=,"{0}","{1}","{2}",{3},{4}'.format(pdpContext.pdpType, pdpContext.apn, pdpContext.pdpAddress or '', pdpContext.dataCompression, pdpContext.headerCompression)) - - def definePdpContext(self, pdpContext): - """ Define a new Packet Data Protocol context, or overwrite an existing one - - @param pdpContext: The PDP context to define - @type pdpContext: gsmmodem.gprs.PdpContext - """ - self.write('AT+CGDCONT={0},"{1}","{2}","{3}",{4},{5}'.format(pdpContext.cid or '', pdpContext.pdpType, pdpContext.apn, pdpContext.pdpAddress or '', pdpContext.dataCompression, pdpContext.headerCompression)) - - def initDataConnection(self, pdpCid=1): - """ Initializes a packet data (GPRS) connection using the specified PDP Context ID """ - # From this point on, we don't want the read thread interfering - #self.log.debug('Stopping read thread') - #self.alive = False - #self.rxThread.join() - self.log.debug('Init data connection') - self.write('ATD*99#', expectedResponseTermSeq="CONNECT\r") - self.log.debug('Data connection open; ready for PPP comms') - # From here on we use PPP to communicate with the network diff --git a/gsmmodem/models/Call.py b/gsmmodem/models/Call.py deleted file mode 100644 index 757f9e2..0000000 --- a/gsmmodem/models/Call.py +++ /dev/null @@ -1,80 +0,0 @@ -import weakref - -from gsmmodem.exceptions import CmeError, InterruptedException, InvalidStateException - - -class Call(object): - """ A voice call """ - - DTMF_COMMAND_BASE = '+VTS=' - dtmfSupport = False # Indicates whether or not DTMF tones can be sent in calls - - def __init__(self, gsmModem, callId, callType, number, callStatusUpdateCallbackFunc=None): - """ - :param gsmModem: GsmModem instance that created this object - :param number: The number that is being called - """ - self._gsmModem = weakref.proxy(gsmModem) - self._callStatusUpdateCallbackFunc = callStatusUpdateCallbackFunc - # Unique ID of this call - self.id = callId - # Call type (VOICE == 0, etc) - self.type = callType - # The remote number of this call (destination or origin) - self.number = number - # Flag indicating whether the call has been answered or not (backing field for "answered" property) - self._answered = False - # Flag indicating whether or not the call is active - # (meaning it may be ringing or answered, but not ended because of a hangup event) - self.active = True - - @property - def answered(self): - return self._answered - - @answered.setter - def answered(self, answered): - self._answered = answered - if self._callStatusUpdateCallbackFunc: - self._callStatusUpdateCallbackFunc(self) - - def sendDtmfTone(self, tones): - """ Send one or more DTMF tones to the remote party (only allowed for an answered call) - - Note: this is highly device-dependent, and might not work - - :param digits: A str containining one or more DTMF tones to play, e.g. "3" or "\*123#" - - :raise CommandError: if the command failed/is not supported - :raise InvalidStateException: if the call has not been answered, or is ended while the command is still executing - """ - if self.answered: - dtmfCommandBase = self.DTMF_COMMAND_BASE.format(cid=self.id) - toneLen = len(tones) - for tone in list(tones): - try: - self._gsmModem.write('AT{0}{1}'.format(dtmfCommandBase, tone), timeout=(5 + toneLen)) - - except CmeError as e: - if e.code == 30: - # No network service - can happen if call is ended during DTMF transmission (but also if DTMF is sent immediately after call is answered) - raise InterruptedException('No network service', e) - elif e.code == 3: - # Operation not allowed - can happen if call is ended during DTMF transmission - raise InterruptedException('Operation not allowed', e) - else: - raise e - else: - raise InvalidStateException('Call is not active (it has not yet been answered, or it has ended).') - - def hangup(self): - """ End the phone call. - - Does nothing if the call is already inactive. - """ - if self.active: - self._gsmModem.write('ATH') - self.answered = False - self.active = False - if self.id in self._gsmModem.activeCalls: - del self._gsmModem.activeCalls[self.id] diff --git a/gsmmodem/models/IncomingCall.py b/gsmmodem/models/IncomingCall.py deleted file mode 100644 index 917ef9e..0000000 --- a/gsmmodem/models/IncomingCall.py +++ /dev/null @@ -1,40 +0,0 @@ -from gsmmodem.modem import Call - - -class IncomingCall(Call): - - CALL_TYPE_MAP = {'VOICE': 0} - - """ Represents an incoming call, conveniently allowing access to call meta information and -control """ - def __init__(self, gsmModem, number, ton, callerName, callId, callType): - """ - :param gsmModem: GsmModem instance that created this object - :param number: Caller number - :param ton: TON (type of number/address) in integer format - :param callType: Type of the incoming call (VOICE, FAX, DATA, etc) - """ - if callType in self.CALL_TYPE_MAP: - callType = self.CALL_TYPE_MAP[callType] - super(IncomingCall, self).__init__(gsmModem, callId, callType, number) - # Type attribute of the incoming call - self.ton = ton - self.callerName = callerName - # Flag indicating whether the call is ringing or not - self.ringing = True - # Amount of times this call has rung (before answer/hangup) - self.ringCount = 1 - - def answer(self): - """ Answer the phone call. - :return: self (for chaining method calls) - """ - if self.ringing: - self._gsmModem.write('ATA') - self.ringing = False - self.answered = True - return self - - def hangup(self): - """ End the phone call. """ - self.ringing = False - super(IncomingCall, self).hangup() \ No newline at end of file diff --git a/gsmmodem/models/ReceivedSms.py b/gsmmodem/models/ReceivedSms.py deleted file mode 100644 index 60edd23..0000000 --- a/gsmmodem/models/ReceivedSms.py +++ /dev/null @@ -1,27 +0,0 @@ -import weakref - -from gsmmodem.models.Sms import Sms - - -class ReceivedSms(Sms): - """ An SMS message that has been received (MT) """ - - def __init__(self, gsmModem, status, number, time, text, smsc=None, udh=[], index=None): - super(ReceivedSms, self).__init__(number, text, smsc) - self._gsmModem = weakref.proxy(gsmModem) - self.status = status - self.time = time - self.udh = udh - self.index = index - - def reply(self, message): - """ Convenience method that sends a reply SMS to the sender of this message """ - return self._gsmModem.sendSms(self.number, message) - - def sendSms(self, dnumber, message): - """ Convenience method that sends a SMS to someone else """ - return self._gsmModem.sendSms(dnumber, message) - - def getModem(self): - """ Convenience method that returns the gsm modem instance """ - return self._gsmModem diff --git a/gsmmodem/models/SentSms.py b/gsmmodem/models/SentSms.py deleted file mode 100644 index ff032c8..0000000 --- a/gsmmodem/models/SentSms.py +++ /dev/null @@ -1,27 +0,0 @@ -from gsmmodem.models.Sms import Sms -from gsmmodem.models.StatusReport import StatusReport - - -class SentSms(Sms): - """ An SMS message that has been sent (MO) """ - - ENROUTE = 0 # Status indicating message is still enroute to destination - DELIVERED = 1 # Status indicating message has been received by destination handset - FAILED = 2 # Status indicating message delivery has failed - - def __init__(self, number, text, reference, smsc=None): - super(SentSms, self).__init__(number, text, smsc) - self.report = None # Status report for this SMS (StatusReport object) - self.reference = reference - - @property - def status(self): - """ Status of this SMS. Can be ENROUTE, DELIVERED or FAILED - - The actual status report object may be accessed via the 'report' attribute - if status is 'DELIVERED' or 'FAILED' - """ - if self.report == None: - return SentSms.ENROUTE - else: - return SentSms.DELIVERED if self.report.deliveryStatus == StatusReport.DELIVERED else SentSms.FAILED diff --git a/gsmmodem/models/Sms.py b/gsmmodem/models/Sms.py deleted file mode 100644 index fc7f711..0000000 --- a/gsmmodem/models/Sms.py +++ /dev/null @@ -1,24 +0,0 @@ -import abc - - -class Sms(object): - """ Abstract SMS message base class """ - __metaclass__ = abc.ABCMeta - - # Some constants to ease handling SMS statuses - STATUS_RECEIVED_UNREAD = 0 - STATUS_RECEIVED_READ = 1 - STATUS_STORED_UNSENT = 2 - STATUS_STORED_SENT = 3 - STATUS_ALL = 4 - # ...and a handy converter for text mode statuses - TEXT_MODE_STATUS_MAP = {'REC UNREAD': STATUS_RECEIVED_UNREAD, - 'REC READ': STATUS_RECEIVED_READ, - 'STO UNSENT': STATUS_STORED_UNSENT, - 'STO SENT': STATUS_STORED_SENT, - 'ALL': STATUS_ALL} - - def __init__(self, number, text, smsc=None): - self.number = number - self.text = text - self.smsc = smsc \ No newline at end of file diff --git a/gsmmodem/models/StatusReport.py b/gsmmodem/models/StatusReport.py deleted file mode 100644 index b58a2d6..0000000 --- a/gsmmodem/models/StatusReport.py +++ /dev/null @@ -1,24 +0,0 @@ -import weakref - -from gsmmodem.models.Sms import Sms - - -class StatusReport(Sms): - """ An SMS status/delivery report - - Note: the 'status' attribute of this class refers to this status report SM's status (whether - it has been read, etc). To find the status of the message that caused this status report, - use the 'deliveryStatus' attribute. - """ - - DELIVERED = 0 # SMS delivery status: delivery successful - FAILED = 68 # SMS delivery status: delivery failed - - def __init__(self, gsmModem, status, reference, number, timeSent, timeFinalized, deliveryStatus, smsc=None): - super(StatusReport, self).__init__(number, None, smsc) - self._gsmModem = weakref.proxy(gsmModem) - self.status = status - self.reference = reference - self.timeSent = timeSent - self.timeFinalized = timeFinalized - self.deliveryStatus = deliveryStatus diff --git a/gsmmodem/models/__init__.py b/gsmmodem/models/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/gsmmodem/modem.py b/gsmmodem/modem.py deleted file mode 100644 index efacd14..0000000 --- a/gsmmodem/modem.py +++ /dev/null @@ -1,1548 +0,0 @@ -#!/usr/bin/env python - -""" High-level API classes for an attached GSM modem """ - -import logging -import re -import sys -import threading -import time -import weakref - -from gsmmodem.exceptions import EncodingError -from gsmmodem.util import lineMatching -from .exceptions import CommandError, InvalidStateException, CmeError, CmsError, TimeoutException, PinRequiredError, \ - SmscNumberUnknownError -from .models.Call import Call -from .models.IncomingCall import IncomingCall -from .models.ReceivedSms import ReceivedSms -from .models.SentSms import SentSms -from .models.Sms import Sms -from .models.StatusReport import StatusReport -from .pdu import encodeSmsSubmitPdu, decodeSmsPdu, encodeGsm7, encodeTextMode -from .serial_comms import SerialComms -from .util import lineStartingWith, parseTextModeTimeStr, removeAtPrefix - -PYTHON_VERSION = sys.version_info[0] - -CTRLZ = '\x1a' -TERMINATOR = '\r' - -if PYTHON_VERSION >= 3: - xrange = range - dictValuesIter = dict.values - dictItemsIter = dict.items - -class GsmModem(SerialComms): - """ Main class for interacting with an attached GSM modem """ - - log = logging.getLogger('gsmmodem.modem.GsmModem') - - # Used for parsing AT command errors - CM_ERROR_REGEX = re.compile('^\+(CM[ES]) ERROR: (\d+)$') - # Used for parsing signal strength query responses - CSQ_REGEX = re.compile('^\+CSQ:\s*(\d+),') - # Used for parsing caller ID announcements for incoming calls. Group 1 is the number - CLIP_REGEX = re.compile('^\+CLIP:\s*"\+{0,1}(\d+)",(\d+).*$') - # Used for parsing own number. Group 1 is the number - CNUM_REGEX = re.compile('^\+CNUM:\s*".*?","(\+{0,1}\d+)",(\d+).*$') - # Used for parsing new SMS message indications - CMTI_REGEX = re.compile('^\+CMTI:\s*"([^"]+)",\s*(\d+)$') - # Used for parsing SMS message reads (text mode) - CMGR_SM_DELIVER_REGEX_TEXT = None - # Used for parsing SMS status report message reads (text mode) - CMGR_SM_REPORT_REGEXT_TEXT = None - # Used for parsing SMS message reads (PDU mode) - CMGR_REGEX_PDU = None - # Used for parsing USSD event notifications - CUSD_REGEX = re.compile('\+CUSD:\s*(\d),\s*"(.*?)",\s*(\d+)', re.DOTALL) - # Used for parsing SMS status reports - CDSI_REGEX = re.compile('\+CDSI:\s*"([^"]+)",(\d+)$') - CDS_REGEX = re.compile('\+CDS:\s*([0-9]+)"$') - - def __init__(self, port, baudrate=115200, incomingCallCallbackFunc=None, smsReceivedCallbackFunc=None, smsStatusReportCallback=None, requestDelivery=True, AT_CNMI="", *a, **kw): - super(GsmModem, self).__init__(port, baudrate, notifyCallbackFunc=self._handleModemNotification, *a, **kw) - self.incomingCallCallback = incomingCallCallbackFunc or self._placeholderCallback - self.smsReceivedCallback = smsReceivedCallbackFunc or self._placeholderCallback - self.smsStatusReportCallback = smsStatusReportCallback or self._placeholderCallback - self.requestDelivery = requestDelivery - self.AT_CNMI = AT_CNMI or "2,1,0,2" - # Flag indicating whether caller ID for incoming call notification has been set up - self._callingLineIdentification = False - # Flag indicating whether incoming call notifications have extended information - self._extendedIncomingCallIndication = False - # Current active calls (ringing and/or answered), key is the unique call ID (not the remote number) - self.activeCalls = {} - # Dict containing sent SMS messages (for auto-tracking their delivery status) - self.sentSms = weakref.WeakValueDictionary() - self._ussdSessionEvent = None # threading.Event - self._ussdResponse = None # gsmmodem.modem.Ussd - self._smsStatusReportEvent = None # threading.Event - self._dialEvent = None # threading.Event - self._dialResponse = None # gsmmodem.modem.Call - self._waitForAtdResponse = True # Flag that controls if we should wait for an immediate response to ATD, or not - self._waitForCallInitUpdate = True # Flag that controls if we should wait for a ATD "call initiated" message - self._callStatusUpdates = [] # populated during connect() - contains regexes and handlers for detecting/handling call status updates - self._mustPollCallStatus = False # whether or not the modem must be polled for outgoing call status updates - self._pollCallStatusRegex = None # Regular expression used when polling outgoing call status - self._writeWait = 0 # Time (in seconds to wait after writing a command (adjusted when 515 errors are detected) - self._smsTextMode = False # Storage variable for the smsTextMode property - self._gsmBusy = 0 # Storage variable for the GSMBUSY property - self._smscNumber = None # Default SMSC number - self._smsRef = 0 # Sent SMS reference counter - self._smsMemReadDelete = None # Preferred message storage memory for reads/deletes ( parameter used for +CPMS) - self._smsMemWrite = None # Preferred message storage memory for writes ( parameter used for +CPMS) - self._smsReadSupported = True # Whether or not reading SMS messages is supported via AT commands - self._smsEncoding = 'GSM' # Default SMS encoding - self._smsSupportedEncodingNames = None # List of available encoding names - self._commands = None # List of supported AT commands - #Pool of detected DTMF - self.dtmfpool = [] - - def connect(self, pin=None, waitingForModemToStartInSeconds=0): - """ Opens the port and initializes the modem and SIM card - - :param pin: The SIM card PIN code, if any - :type pin: str - - :raise PinRequiredError: if the SIM card requires a PIN but none was provided - :raise IncorrectPinError: if the specified PIN is incorrect - """ - self.log.info('Connecting to modem on port %s at %dbps', self.port, self.baudrate) - super(GsmModem, self).connect() - - if waitingForModemToStartInSeconds > 0: - while waitingForModemToStartInSeconds > 0: - try: - self.write('AT', waitForResponse=True, timeout=0.5) - break - except TimeoutException: - waitingForModemToStartInSeconds -= 0.5 - - # Send some initialization commands to the modem - try: - self.write('ATZ') # reset configuration - except CommandError: - # Some modems require a SIM PIN at this stage already; unlock it now - # Attempt to enable detailed error messages (to catch incorrect PIN error) - # but ignore if it fails - self.write('AT+CMEE=1', parseError=False) - self._unlockSim(pin) - pinCheckComplete = True - self.write('ATZ') # reset configuration - else: - pinCheckComplete = False - self.write('ATE0') # echo off - try: - cfun = lineStartingWith('+CFUN:', self.write('AT+CFUN?'))[7:] # example response: +CFUN: 1 or +CFUN: 1,0 - cfun = int(cfun.split(",")[0]) - if cfun != 1: - self.write('AT+CFUN=1') - except CommandError: - pass # just ignore if the +CFUN command isn't supported - - self.write('AT+CMEE=1') # enable detailed error messages (even if it has already been set - ATZ may reset this) - if not pinCheckComplete: - self._unlockSim(pin) - - # Get list of supported commands from modem - commands = self.supportedCommands - self._commands = commands - - # Device-specific settings - callUpdateTableHint = 0 # unknown modem - enableWind = False - if commands != None: - if '^CVOICE' in commands: - self.write('AT^CVOICE=0', parseError=False) # Enable voice calls - if '+VTS' in commands: # Check for DTMF sending support - Call.dtmfSupport = True - elif '^DTMF' in commands: - # Huawei modems use ^DTMF to send DTMF tones - callUpdateTableHint = 1 # Huawei - if '^USSDMODE' in commands: - # Enable Huawei text-mode USSD - self.write('AT^USSDMODE=0', parseError=False) - if '+WIND' in commands: - callUpdateTableHint = 2 # Wavecom - enableWind = True - elif '+ZPAS' in commands: - callUpdateTableHint = 3 # ZTE - else: - # Try to enable general notifications on Wavecom-like device - enableWind = True - - if enableWind: - try: - wind = lineStartingWith('+WIND:', self.write('AT+WIND?')) # Check current WIND value; example response: +WIND: 63 - except CommandError: - # Modem does not support +WIND notifications. See if we can detect other known call update notifications - pass - else: - # Enable notifications for call setup, hangup, etc - # if int(wind[7:]) != 50: - # self.write('AT+WIND=50') - callUpdateTableHint = 2 # Wavecom - - # Attempt to identify modem type directly (if not already) - for outgoing call status updates - if callUpdateTableHint == 0: - if 'simcom' in self.manufacturer.lower() : #simcom modems support DTMF and don't support AT+CLAC - Call.dtmfSupport = True - try: - self.write('AT+DDET=1') # enable detect incoming DTMF - except CommandError: - # simcom 7000E for example doesn't support the DDET command - Call.dtmfSupport = False - - if self.manufacturer.lower() == 'huawei': - callUpdateTableHint = 1 # huawei - else: - # See if this is a ZTE modem that has not yet been identified based on supported commands - try: - self.write('AT+ZPAS?') - except CommandError: - pass # Not a ZTE modem - else: - callUpdateTableHint = 3 # ZTE - # Load outgoing call status updates based on identified modem features - if callUpdateTableHint == 1: - # Use Hauwei's ^NOTIFICATIONs - self.log.info('Loading Huawei call state update table') - self._callStatusUpdates = ((re.compile('^\^ORIG:(\d),(\d)$'), self._handleCallInitiated), - (re.compile('^\^CONN:(\d),(\d)$'), self._handleCallAnswered), - (re.compile('^\^CEND:(\d),(\d+),(\d)+,(\d)+$'), self._handleCallEnded)) - self._mustPollCallStatus = False - # Huawei modems use ^DTMF to send DTMF tones; use that instead - Call.DTMF_COMMAND_BASE = '^DTMF={cid},' - Call.dtmfSupport = True - elif callUpdateTableHint == 2: - # Wavecom modem: +WIND notifications supported - self.log.info('Loading Wavecom call state update table') - self._callStatusUpdates = ((re.compile('^\+WIND: 5,(\d)$'), self._handleCallInitiated), - (re.compile('^OK$'), self._handleCallAnswered), - (re.compile('^\+WIND: 6,(\d)$'), self._handleCallEnded)) - self._waitForAtdResponse = False # Wavecom modems return OK only when the call is answered - self._mustPollCallStatus = False - if commands == None: # older modem, assume it has standard DTMF support - Call.dtmfSupport = True - elif callUpdateTableHint == 3: # ZTE - # Use ZTE notifications ("CONNECT"/"HANGUP", but no "call initiated" notification) - self.log.info('Loading ZTE call state update table') - self._callStatusUpdates = ((re.compile('^CONNECT$'), self._handleCallAnswered), - (re.compile('^HANGUP:\s*(\d+)$'), self._handleCallEnded), - (re.compile('^OK$'), self._handleCallRejected)) - self._waitForAtdResponse = False # ZTE modems do not return an immediate OK only when the call is answered - self._mustPollCallStatus = False - self._waitForCallInitUpdate = False # ZTE modems do not provide "call initiated" updates - if commands == None: # ZTE uses standard +VTS for DTMF - Call.dtmfSupport = True - else: - # Unknown modem - we do not know what its call updates look like. Use polling instead - self.log.info('Unknown/generic modem type - will use polling for call state updates') - self._mustPollCallStatus = True - self._pollCallStatusRegex = re.compile('^\+CLCC:\s+(\d+),(\d),(\d),(\d),([^,]),"([^,]*)",(\d+)$') - self._waitForAtdResponse = True # Most modems return OK immediately after issuing ATD - - # General meta-information setup - self.write('AT+COPS=3,0', parseError=False) # Use long alphanumeric name format - - # SMS setup - self.write('AT+CMGF={0}'.format(1 if self.smsTextMode else 0)) # Switch to text or PDU mode for SMS messages - self._compileSmsRegexes() - if self._smscNumber != None: - self.write('AT+CSCA="{0}"'.format(self._smscNumber)) # Set default SMSC number - currentSmscNumber = self._smscNumber - else: - currentSmscNumber = self.smsc - # Some modems delete the SMSC number when setting text-mode SMS parameters; preserve it if needed - if currentSmscNumber != None: - self._smscNumber = None # clear cache - if self.requestDelivery: - self.write('AT+CSMP=49,167,0,0', parseError=False) # Enable delivery reports - else: - self.write('AT+CSMP=17,167,0,0', parseError=False) # Not enable delivery reports - # ...check SMSC again to ensure it did not change - if currentSmscNumber != None and self.smsc != currentSmscNumber: - self.smsc = currentSmscNumber - - # Set message storage, but first check what the modem supports - example response: +CPMS: (("SM","BM","SR"),("SM")) - try: - cpmsLine = lineStartingWith('+CPMS', self.write('AT+CPMS=?')) - except CommandError: - # Modem does not support AT+CPMS; SMS reading unavailable - self._smsReadSupported = False - self.log.warning('SMS preferred message storage query not supported by modem. SMS reading unavailable.') - else: - cpmsSupport = cpmsLine.split(' ', 1)[1].split('),(') - # Do a sanity check on the memory types returned - Nokia S60 devices return empty strings, for example - for memItem in cpmsSupport: - if len(memItem) == 0: - # No support for reading stored SMS via AT commands - probably a Nokia S60 - self._smsReadSupported = False - self.log.warning('Invalid SMS message storage support returned by modem. SMS reading unavailable. Response was: "%s"', cpmsLine) - break - else: - # Suppported memory types look fine, continue - preferredMemoryTypes = ('"ME"', '"SM"', '"SR"') - cpmsItems = [''] * len(cpmsSupport) - for i in xrange(len(cpmsSupport)): - for memType in preferredMemoryTypes: - if memType in cpmsSupport[i]: - if i == 0: - self._smsMemReadDelete = memType - cpmsItems[i] = memType - break - self.write('AT+CPMS={0}'.format(','.join(cpmsItems))) # Set message storage - del cpmsSupport - del cpmsLine - - if self._smsReadSupported and (self.smsReceivedCallback or self.smsStatusReportCallback): - try: - self.write('AT+CNMI=' + self.AT_CNMI) # Set message notifications - except CommandError: - try: - self.write('AT+CNMI=2,1,0,1,0') # Set message notifications, using TE for delivery reports - except CommandError: - # Message notifications not supported - self._smsReadSupported = False - self.log.warning('Incoming SMS notifications not supported by modem. SMS receiving unavailable.') - - # Incoming call notification setup - try: - self.write('AT+CLIP=1') # Enable calling line identification presentation - except CommandError as clipError: - self._callingLineIdentification = False - self.log.warning('Incoming call calling line identification (caller ID) not supported by modem. Error: {0}'.format(clipError)) - else: - self._callingLineIdentification = True - try: - self.write('AT+CRC=1') # Enable extended format of incoming indication (optional) - except CommandError as crcError: - self._extendedIncomingCallIndication = False - self.log.warning('Extended format incoming call indication not supported by modem. Error: {0}'.format(crcError)) - else: - self._extendedIncomingCallIndication = True - - # Call control setup - self.write('AT+CVHU=0', parseError=False) # Enable call hang-up with ATH command (ignore if command not supported) - - def _unlockSim(self, pin): - """ Unlocks the SIM card using the specified PIN (if necessary, else does nothing) """ - # Unlock the SIM card if needed - try: - cpinResponse = lineStartingWith('+CPIN', self.write('AT+CPIN?', timeout=15)) - except TimeoutException as timeout: - # Wavecom modems do not end +CPIN responses with "OK" (github issue #19) - see if just the +CPIN response was returned - if timeout.data != None: - cpinResponse = lineStartingWith('+CPIN', timeout.data) - if cpinResponse == None: - # No useful response read - raise timeout - else: - # Nothing read (real timeout) - raise timeout - if cpinResponse != '+CPIN: READY': - if pin != None: - self.write('AT+CPIN="{0}"'.format(pin)) - else: - raise PinRequiredError('AT+CPIN') - - def write(self, data, waitForResponse=True, timeout:float =10, parseError=True, writeTerm=TERMINATOR, expectedResponseTermSeq=None): - """ Write data to the modem. - - This method adds the ``\\r\\n`` end-of-line sequence to the data parameter, and - writes it to the modem. - - :param data: Command/data to be written to the modem - :type data: str - :param waitForResponse: Whether this method should block and return the response from the modem or not - :type waitForResponse: bool - :param timeout: Maximum amount of time in seconds to wait for a response from the modem - :type timeout: int - :param parseError: If True, a CommandError is raised if the modem responds with an error (otherwise the response is returned as-is) - :type parseError: bool - :param writeTerm: The terminating sequence to append to the written data - :type writeTerm: str - :param expectedResponseTermSeq: The expected terminating sequence that marks the end of the modem's response (defaults to ``\\r\\n``) - :type expectedResponseTermSeq: str - - :raise CommandError: if the command returns an error (only if parseError parameter is True) - :raise TimeoutException: if no response to the command was received from the modem - - :return: A list containing the response lines from the modem, or None if waitForResponse is False - :rtype: list - """ - - self.log.debug('write: %s', data) - responseLines = super(GsmModem, self).write(data + writeTerm, waitForResponse=waitForResponse, timeout=timeout, expectedResponseTermSeq=expectedResponseTermSeq) - if self._writeWait > 0: # Sleep a bit if required (some older modems suffer under load) - time.sleep(self._writeWait) - if waitForResponse: - cmdStatusLine = responseLines[-1] - if parseError: - if 'ERROR' in cmdStatusLine: - cmErrorMatch = self.CM_ERROR_REGEX.match(cmdStatusLine) - if cmErrorMatch: - errorType = cmErrorMatch.group(1) - errorCode = int(cmErrorMatch.group(2)) - if errorCode == 515 or errorCode == 14: - # 515 means: "Please wait, init or command processing in progress." - # 14 means "SIM busy" - self._writeWait += 0.2 # Increase waiting period temporarily - # Retry the command after waiting a bit - self.log.debug('Device/SIM busy error detected; self._writeWait adjusted to %fs', self._writeWait) - time.sleep(self._writeWait) - result = self.write(data, waitForResponse, timeout, parseError, writeTerm, expectedResponseTermSeq) - self.log.debug('self_writeWait set to 0.1 because of recovering from device busy (515) error') - if errorCode == 515: - self._writeWait = 0.1 # Set this to something sane for further commands (slow modem) - else: - self._writeWait = 0 # The modem was just waiting for the SIM card - return result - if errorType == 'CME': - raise CmeError(data, int(errorCode)) - else: # CMS error - raise CmsError(data, int(errorCode)) - else: - raise CommandError(data) - elif cmdStatusLine == 'COMMAND NOT SUPPORT': # Some Huawei modems respond with this for unknown commands - raise CommandError('{} ({})'.format(data,cmdStatusLine)) - return responseLines - - @property - def signalStrength(self): - """ Checks the modem's cellular network signal strength - - :raise CommandError: if an error occurs - - :return: The network signal strength as an integer between 0 and 99, or -1 if it is unknown - :rtype: int - """ - csq = self.CSQ_REGEX.match(self.write('AT+CSQ')[0]) - if csq: - ss = int(csq.group(1)) - return ss if ss != 99 else -1 - else: - raise CommandError() - - @property - def manufacturer(self): - """ :return: The modem's manufacturer's name """ - return self.write('AT+CGMI')[0] - - @property - def model(self): - """ :return: The modem's model name """ - return self.write('AT+CGMM')[0] - - @property - def revision(self): - """ :return: The modem's software revision, or None if not known/supported """ - try: - return self.write('AT+CGMR')[0] - except CommandError: - return None - - @property - def imei(self): - """ :return: The modem's serial number (IMEI number) """ - return self.write('AT+CGSN')[0] - - @property - def imsi(self): - """ :return: The IMSI (International Mobile Subscriber Identity) of the SIM card. The PIN may need to be entered before reading the IMSI """ - return self.write('AT+CIMI')[0] - - @property - def networkName(self): - """ :return: the name of the GSM Network Operator to which the modem is connected """ - copsMatch = lineMatching('^\+COPS: (\d),(\d),"(.+)",{0,1}\d*$', self.write('AT+COPS?')) # response format: +COPS: mode,format,"operator_name",x - if copsMatch: - return copsMatch.group(3) - - @property - def supportedCommands(self): - """ :return: list of AT commands supported by this modem (without the AT prefix). Returns None if not known """ - try: - # AT+CLAC responses differ between modems. Most respond with +CLAC: and then a comma-separated list of commands - # while others simply return each command on a new line, with no +CLAC: prefix - response = self.write('AT+CLAC', timeout=10) - if len(response) == 2: # Single-line response, comma separated - commands = response[0] - if commands.startswith('+CLAC'): - commands = commands[6:] # remove the +CLAC: prefix before splitting - return commands.split(',') - elif len(response) > 2: # Multi-line response - return [removeAtPrefix(cmd.strip()) for cmd in response[:-1]] - else: - self.log.debug('Unhandled +CLAC response: {0}'.format(response)) - return None - except (TimeoutException, CommandError): - # Try interactive command recognition - commands = [] - checkable_commands = ['^CVOICE', '+VTS', '^DTMF', '^USSDMODE', '+WIND', '+ZPAS', '+CSCS', '+CNUM'] - - # Check if modem is still alive - try: - response = self.write('AT') - except: - raise TimeoutException - - # Check all commands that will by considered - for command in checkable_commands: - try: - # Compose AT command that will read values under specified function - at_command='AT'+command+'=?' - response = self.write(at_command) - # If there are values inside response - add command to the list - commands.append(command) - except: - continue - - # Return found commands - if len(commands) == 0: - return None - else: - return commands - - @property - def smsTextMode(self): - """ :return: True if the modem is set to use text mode for SMS, False if it is set to use PDU mode """ - return self._smsTextMode - @smsTextMode.setter - def smsTextMode(self, textMode): - """ Set to True for the modem to use text mode for SMS, or False for it to use PDU mode """ - if textMode != self._smsTextMode: - if self.alive: - self.write('AT+CMGF={0}'.format(1 if textMode else 0)) - self._smsTextMode = textMode - self._compileSmsRegexes() - - @property - def smsSupportedEncoding(self): - """ - :raise NotImplementedError: If an error occures during AT command response parsing. - :return: List of supported encoding names. """ - - # Check if command is available - if self._commands == None: - self._commands = self.supportedCommands - - if self._commands == None: - self._smsSupportedEncodingNames = [] - return self._smsSupportedEncodingNames - - if not '+CSCS' in self._commands: - self._smsSupportedEncodingNames = [] - return self._smsSupportedEncodingNames - - # Get available encoding names - response = self.write('AT+CSCS=?') - - # Check response length (should be 2 - list of options and command status) - if len(response) != 2: - self.log.debug('Unhandled +CSCS response: {0}'.format(response)) - self._smsSupportedEncodingNames = [] - raise NotImplementedError - - # Extract encoding names list - try: - enc_list = response[0] # Get the first line - enc_list = enc_list[6:] # Remove '+CSCS: ' prefix - # Extract AT list in format ("str", "str2", "str3") - enc_list = enc_list.split('(')[1] - enc_list = enc_list.split(')')[0] - enc_list = enc_list.split(',') - enc_list = [x.split('"')[1] for x in enc_list] - except: - self.log.debug('Unhandled +CSCS response: {0}'.format(response)) - self._smsSupportedEncodingNames = [] - raise NotImplementedError - - self._smsSupportedEncodingNames = enc_list - return self._smsSupportedEncodingNames - - @property - def smsEncoding(self): - """ :return: Encoding name if encoding command is available, else GSM. """ - if self._commands == None: - self._commands = self.supportedCommands - - if self._commands == None: - return self._smsEncoding - - if '+CSCS' in self._commands: - response = self.write('AT+CSCS?') - - if len(response) == 2: - encoding = response[0] - if encoding.startswith('+CSCS'): - encoding = encoding[6:].split('"') # remove the +CSCS: prefix before splitting - if len(encoding) == 3: - self._smsEncoding = encoding[1] - else: - self.log.debug('Unhandled +CSCS response: {0}'.format(response)) - else: - self.log.debug('Unhandled +CSCS response: {0}'.format(response)) - - return self._smsEncoding - @smsEncoding.setter - def smsEncoding(self, encoding): - """ Set encoding for SMS inside PDU mode. - - :raise CommandError: if unable to set encoding - :raise ValueError: if encoding is not supported by modem - """ - # Check if command is available - if self._commands == None: - self._commands = self.supportedCommands - - if self._commands == None: - if encoding != self._smsEncoding: - raise CommandError('Unable to set SMS encoding (no supported commands)') - else: - return - - if not '+CSCS' in self._commands: - if encoding != self._smsEncoding: - raise CommandError('Unable to set SMS encoding (+CSCS command not supported)') - else: - return - - # Check if command is available - if self._smsSupportedEncodingNames == None: - self.smsSupportedEncoding - - # Check if desired encoding is available - if encoding in self._smsSupportedEncodingNames: - # Set encoding - response = self.write('AT+CSCS="{0}"'.format(encoding)) - if len(response) == 1: - if response[0].lower() == 'ok': - self._smsEncoding = encoding - return - - if encoding != self._smsEncoding: - raise ValueError('Unable to set SMS encoding (enocoding {0} not supported)'.format(encoding)) - else: - return - - def _setSmsMemory(self, readDelete=None, write=None): - """ Set the current SMS memory to use for read/delete/write operations """ - # Switch to the correct memory type if required - if write != None and write != self._smsMemWrite: - readDel = readDelete or self._smsMemReadDelete - self.write('AT+CPMS="{0}","{1}"'.format(readDel, write)) - self._smsMemReadDelete = readDel - self._smsMemWrite = write - elif readDelete != None and readDelete != self._smsMemReadDelete: - self.write('AT+CPMS="{0}"'.format(readDelete)) - self._smsMemReadDelete = readDelete - - def _compileSmsRegexes(self): - """ Compiles regular expression used for parsing SMS messages based on current mode """ - if self.smsTextMode: - if self.CMGR_SM_DELIVER_REGEX_TEXT == None: - self.CMGR_SM_DELIVER_REGEX_TEXT = re.compile('^\+CMGR: "([^"]+)","([^"]+)",[^,]*,"([^"]+)"$') - self.CMGR_SM_REPORT_REGEXT_TEXT = re.compile('^\+CMGR: ([^,]*),\d+,(\d+),"{0,1}([^"]*)"{0,1},\d*,"([^"]+)","([^"]+)",(\d+)$') - elif self.CMGR_REGEX_PDU == None: - self.CMGR_REGEX_PDU = re.compile('^\+CMGR:\s*(\d*),\s*"{0,1}([^"]*)"{0,1},\s*(\d+)$') - - @property - def gsmBusy(self): - """ :return: Current GSMBUSY state """ - try: - response = self.write('AT+GSMBUSY?') - response = response[0] # Get the first line - response = response[10] # Remove '+GSMBUSY: ' prefix - self._gsmBusy = response - except: - pass # If error is related to ME funtionality: +CME ERROR: - return self._gsmBusy - @gsmBusy.setter - def gsmBusy(self, gsmBusy): - """ Sete GSMBUSY state """ - if gsmBusy != self._gsmBusy: - if self.alive: - self.write('AT+GSMBUSY="{0}"'.format(gsmBusy)) - self._gsmBusy = gsmBusy - - @property - def smsc(self): - """ :return: The default SMSC number stored on the SIM card """ - if self._smscNumber == None: - try: - readSmsc = self.write('AT+CSCA?') - except SmscNumberUnknownError: - pass # Some modems return a CMS 330 error if the value isn't set - else: - cscaMatch = lineMatching('\+CSCA:\s*"([^,]+)",(\d+)$', readSmsc) - if cscaMatch: - self._smscNumber = cscaMatch.group(1) - return self._smscNumber - @smsc.setter - def smsc(self, smscNumber): - """ Set the default SMSC number to use when sending SMS messages """ - if smscNumber != self._smscNumber: - if self.alive: - self.write('AT+CSCA="{0}"'.format(smscNumber)) - self._smscNumber = smscNumber - - @property - def ownNumber(self): - """ Query subscriber phone number. - - It must be stored on SIM by operator. - If is it not stored already, it usually is possible to store the number by user. - - :raise TimeoutException: if a timeout was specified and reached - - - :return: Subscriber SIM phone number. Returns None if not known - :rtype: int - """ - - try: - if "+CNUM" in self._commands: - response = self.write('AT+CNUM') - else: - response = self.retrevie_first_number() - - if len(response)==1 and response[0] == "OK": # command is supported, but no number is set - response = self.retrevie_first_number() - return None - elif len(response) == 2: # OK and phone number. Actual number is in the first line, second parameter, and is placed inside quotation marks - cnumLine = response[0] - cnumMatch = self.CNUM_REGEX.match(cnumLine) - if cnumMatch: - return cnumMatch.group(1) - else: - self.log.debug('Error parse +CNUM response: {0}'.format(response)) - return None - elif len(response) > 2: # Multi-line response - self.log.debug('Unhandled +CNUM/+CPBS response: {0}'.format(response)) - return None - - except (TimeoutException, CommandError): - raise - - def retrevie_first_number(self): - # temporarily switch to "own numbers" phonebook, read position 1 and than switch back - response = self.write('AT+CPBS?') - selected_phonebook = response[0][6:].split('"')[ - 1] # first line, remove the +CSCS: prefix, split, first parameter - if selected_phonebook is not "ON": - self.write('AT+CPBS="ON"') - response = self.write("AT+CPBR=1") - self.write('AT+CPBS="{0}"'.format(selected_phonebook)) - return response - - @ownNumber.setter - def ownNumber(self, phone_number): - actual_phonebook = self.write('AT+CPBS?') - if actual_phonebook is not "ON": - self.write('AT+CPBS="ON"') - self.write('AT+CPBW=1,"' + phone_number + '"') - - - def waitForNetworkCoverage(self, timeout=None): - """ Block until the modem has GSM network coverage. - - This method blocks until the modem is registered with the network - and the signal strength is greater than 0, optionally timing out - if a timeout was specified - - :param timeout: Maximum time to wait for network coverage, in seconds - :type timeout: int or float - - :raise TimeoutException: if a timeout was specified and reached - :raise InvalidStateException: if the modem is not going to receive network coverage (SIM blocked, etc) - - :return: the current signal strength - """ - block = [True] - if timeout != None: - # Set up a timeout mechanism - def _cancelBlock(): - block[0] = False - t = threading.Timer(timeout, _cancelBlock) - t.start() - ss = -1 - checkCreg = True - while block[0]: - if checkCreg: - cregResult = lineMatching('^\+CREG:\s*(\d),(\d)(,[^,]*,[^,]*)?$', self.write('AT+CREG?', parseError=False)) # example result: +CREG: 0,1 - if cregResult: - status = int(cregResult.group(2)) - if status in (1, 5): - # 1: registered, home network, 5: registered, roaming - # Now simply check and return network signal strength - checkCreg = False - elif status == 3: - raise InvalidStateException('Network registration denied') - elif status == 0: - raise InvalidStateException('Device not searching for network operator') - else: - # Disable network registration check; only use signal strength - self.log.info('+CREG check disabled due to invalid response or unsupported command') - checkCreg = False - else: - # Check signal strength - ss = self.signalStrength - if ss > 0: - return ss - time.sleep(1) - else: - # If this is reached, the timer task has triggered - raise TimeoutException() - - def sendSms(self, destination, text, waitForDeliveryReport=False, deliveryTimeout=15, sendFlash=False): - """ Send an SMS text message - - :param destination: the recipient's phone number - :type destination: str - :param text: the message text - :type text: str - :param waitForDeliveryReport: if True, this method blocks until a delivery report is received for the sent message - :type waitForDeliveryReport: boolean - :param deliveryTimeout: the maximum time in seconds to wait for a delivery report (if "waitForDeliveryReport" is True) - :type deliveryTimeout: int or float - - :raise CommandError: if an error occurs while attempting to send the message - :raise TimeoutException: if the operation times out - """ - - # Check input text to select appropriate mode (text or PDU) - if self.smsTextMode: - try: - encodedText = encodeTextMode(text) - except ValueError: - self.smsTextMode = False - - if self.smsTextMode: - # Send SMS via AT commands - self.write('AT+CMGS="{0}"'.format(destination), timeout=5, expectedResponseTermSeq='> ') - result = lineStartingWith('+CMGS:', self.write(text, timeout=35, writeTerm=CTRLZ)) - else: - # Check encoding - try: - encodedText = encodeGsm7(text) - except ValueError: - encodedText = None - - # Set GSM modem SMS encoding format - # Encode message text and set data coding scheme based on text contents - if encodedText == None: - # Cannot encode text using GSM-7; use UCS2 instead - self.smsEncoding = 'UCS2' - else: - self.smsEncoding = 'GSM' - - # Encode text into PDUs - pdus = encodeSmsSubmitPdu(destination, text, reference=self._smsRef, sendFlash=sendFlash) - - # Send SMS PDUs via AT commands - for pdu in pdus: - self.write('AT+CMGS={0}'.format(pdu.tpduLength), timeout=5, expectedResponseTermSeq='> ') - result = lineStartingWith('+CMGS:', self.write(str(pdu), timeout=35, writeTerm=CTRLZ)) # example: +CMGS: xx - - if result == None: - raise CommandError('Modem did not respond with +CMGS response') - - # Keep SMS reference number in order to pair delivery reports with sent message - reference = int(result[7:]) - self._smsRef = reference + 1 - if self._smsRef > 255: - self._smsRef = 0 - - # Create sent SMS object for future delivery checks - sms = SentSms(destination, text, reference) - - # Add a weak-referenced entry for this SMS (allows us to update the SMS state if a status report is received) - self.sentSms[reference] = sms - if waitForDeliveryReport: - self._smsStatusReportEvent = threading.Event() - if self._smsStatusReportEvent.wait(deliveryTimeout): - self._smsStatusReportEvent = None - else: # Response timed out - self._smsStatusReportEvent = None - raise TimeoutException() - return sms - - def sendUssd(self, ussdString, responseTimeout=60): - """ Starts a USSD session by dialing the the specified USSD string, or \ - sends the specified string in the existing USSD session (if any) - - :param ussdString: The USSD access number to dial - :param responseTimeout: Maximum time to wait a response, in seconds - - :raise TimeoutException: if no response is received in time - - :return: The USSD response message/session (as a Ussd object) - :rtype: gsmmodem.modem.Ussd - """ - self._ussdSessionEvent = threading.Event() - try: - cusdResponse = self.write('AT+CUSD=1,"{0}",15'.format(ussdString), timeout=responseTimeout) # Should respond with "OK" - except Exception: - self._ussdSessionEvent = None # Cancel the thread sync lock - raise - - # Some modems issue the +CUSD response before the acknowledgment "OK" - check for that - if len(cusdResponse) > 1: - cusdResponseFound = lineStartingWith('+CUSD', cusdResponse) != None - if cusdResponseFound: - self._ussdSessionEvent = None # Cancel thread sync lock - return self._parseCusdResponse(cusdResponse) - # Wait for the +CUSD notification message - if self._ussdSessionEvent.wait(responseTimeout): - self._ussdSessionEvent = None - return self._ussdResponse - else: # Response timed out - self._ussdSessionEvent = None - raise TimeoutException() - - - def checkForwarding(self, querytype, responseTimeout=15): - """ Check forwarding status: 0=Unconditional, 1=Busy, 2=NoReply, 3=NotReach, 4=AllFwd, 5=AllCondFwd - :param querytype: The type of forwarding to check - - :return: Status - :rtype: Boolean - """ - try: - queryResponse = self.write('AT+CCFC={0},2'.format(querytype), timeout=responseTimeout) # Should respond with "OK" - except Exception: - raise - print(queryResponse) - return True - - - def setForwarding(self, fwdType, fwdEnable, fwdNumber, responseTimeout=15): - """ Check forwarding status: 0=Unconditional, 1=Busy, 2=NoReply, 3=NotReach, 4=AllFwd, 5=AllCondFwd - :param fwdType: The type of forwarding to set - :param fwdEnable: 1 to enable, 0 to disable, 2 to query, 3 to register, 4 to erase - :param fwdNumber: Number to forward to - - :return: Success or not - :rtype: Boolean - """ - try: - queryResponse = self.write('AT+CCFC={0},{1},"{2}"'.format(fwdType, fwdEnable, fwdNumber), timeout=responseTimeout) # Should respond with "OK" - except Exception: - raise - return False - print(queryResponse) - return queryResponse - - def dial(self, number, timeout=5, callStatusUpdateCallbackFunc=None): - """ Calls the specified phone number using a voice phone call - - :param number: The phone number to dial - :param timeout: Maximum time to wait for the call to be established - :param callStatusUpdateCallbackFunc: Callback function that is executed if the call's status changes due to - remote events (i.e. when it is answered, the call is ended by the remote party) - - :return: The outgoing call - :rtype: gsmmodem.modem.Call - """ - if self._waitForCallInitUpdate: - # Wait for the "call originated" notification message - self._dialEvent = threading.Event() - try: - self.write('ATD{0};'.format(number), timeout=timeout, waitForResponse=self._waitForAtdResponse) - except Exception: - self._dialEvent = None # Cancel the thread sync lock - raise - else: - # Don't wait for a call init update - base the call ID on the number of active calls - self.write('ATD{0};'.format(number), timeout=timeout, waitForResponse=self._waitForAtdResponse) - self.log.debug("Not waiting for outgoing call init update message") - callId = len(self.activeCalls) + 1 - callType = 0 # Assume voice - call = Call(self, callId, callType, number, callStatusUpdateCallbackFunc) - self.activeCalls[callId] = call - return call - - if self._mustPollCallStatus: - # Fake a call notification by polling call status until the status indicates that the call is being dialed - threading.Thread(target=self._pollCallStatus, kwargs={'expectedState': 0, 'timeout': timeout}).start() - - if self._dialEvent.wait(timeout): - self._dialEvent = None - callId, callType = self._dialResponse - call = Call(self, callId, callType, number, callStatusUpdateCallbackFunc) - self.activeCalls[callId] = call - return call - else: # Call establishing timed out - self._dialEvent = None - raise TimeoutException() - - def processStoredSms(self, unreadOnly=False): - """ Process all SMS messages currently stored on the device/SIM card. - - Reads all (or just unread) received SMS messages currently stored on the - device/SIM card, initiates "SMS received" events for them, and removes - them from the SIM card. - This is useful if SMS messages were received during a period that - python-gsmmodem was not running but the modem was powered on. - - :param unreadOnly: If True, only process unread SMS messages - :type unreadOnly: boolean - """ - if self.smsReceivedCallback: - states = [Sms.STATUS_RECEIVED_UNREAD] - if not unreadOnly: - states.insert(0, Sms.STATUS_RECEIVED_READ) - for msgStatus in states: - messages = self.listStoredSms(status=msgStatus, delete=True) - for sms in messages: - self.smsReceivedCallback(sms) - else: - raise ValueError('GsmModem.smsReceivedCallback not set') - - def listStoredSms(self, status=Sms.STATUS_ALL, memory=None, delete=False): - """ Returns SMS messages currently stored on the device/SIM card. - - The messages are read from the memory set by the "memory" parameter. - - :param status: Filter messages based on this read status; must be 0-4 (see Sms class) - :type status: int - :param memory: The memory type to read from. If None, use the current default SMS read memory - :type memory: str or None - :param delete: If True, delete returned messages from the device/SIM card - :type delete: bool - - :return: A list of Sms objects containing the messages read - :rtype: list - """ - self._setSmsMemory(readDelete=memory) - messages = [] - delMessages = set() - if self.smsTextMode: - cmglRegex= re.compile('^\+CMGL: (\d+),"([^"]+)","([^"]+)",[^,]*,"([^"]+)"$') - for key, val in dictItemsIter(Sms.TEXT_MODE_STATUS_MAP): - if status == val: - statusStr = key - break - else: - raise ValueError('Invalid status value: {0}'.format(status)) - result = self.write('AT+CMGL="{0}"'.format(statusStr)) - msgLines = [] - msgIndex = msgStatus = number = msgTime = None - for line in result: - cmglMatch = cmglRegex.match(line) - if cmglMatch: - # New message; save old one if applicable - if msgIndex != None and len(msgLines) > 0: - msgText = '\n'.join(msgLines) - msgLines = [] - messages.append(ReceivedSms(self, Sms.TEXT_MODE_STATUS_MAP[msgStatus], number, parseTextModeTimeStr(msgTime), msgText, None, [], msgIndex)) - delMessages.add(int(msgIndex)) - msgIndex, msgStatus, number, msgTime = cmglMatch.groups() - msgLines = [] - else: - if line != 'OK': - msgLines.append(line) - if msgIndex != None and len(msgLines) > 0: - msgText = '\n'.join(msgLines) - msgLines = [] - messages.append(ReceivedSms(self, Sms.TEXT_MODE_STATUS_MAP[msgStatus], number, parseTextModeTimeStr(msgTime), msgText, None, [], msgIndex)) - delMessages.add(int(msgIndex)) - else: - cmglRegex = re.compile('^\+CMGL:\s*(\d+),\s*(\d+),.*$') - readPdu = False - result = self.write('AT+CMGL={0}'.format(status)) - for line in result: - if not readPdu: - cmglMatch = cmglRegex.match(line) - if cmglMatch: - msgIndex = int(cmglMatch.group(1)) - msgStat = int(cmglMatch.group(2)) - readPdu = True - else: - try: - smsDict = decodeSmsPdu(line) - except EncodingError: - self.log.debug('Discarding line from +CMGL response: %s', line) - except: - pass - # dirty fix warning: https://github.com/yuriykashin/python-gsmmodem/issues/1 - # todo: make better fix - else: - if smsDict['type'] == 'SMS-DELIVER': - sms = ReceivedSms(self, int(msgStat), smsDict['number'], smsDict['time'], smsDict['text'], smsDict['smsc'], smsDict.get('udh', []), msgIndex) - elif smsDict['type'] == 'SMS-STATUS-REPORT': - sms = StatusReport(self, int(msgStat), smsDict['reference'], smsDict['number'], smsDict['time'], smsDict['discharge'], smsDict['status']) - else: - raise CommandError('Invalid PDU type for readStoredSms(): {0}'.format(smsDict['type'])) - messages.append(sms) - delMessages.add(msgIndex) - readPdu = False - if delete: - if status == Sms.STATUS_ALL: - # Delete all messages - self.deleteMultipleStoredSms() - else: - for msgIndex in delMessages: - self.deleteStoredSms(msgIndex) - return messages - - def _handleModemNotification(self, lines): - """ Handler for unsolicited notifications from the modem - - This method simply spawns a separate thread to handle the actual notification - (in order to release the read thread so that the handlers are able to write back to the modem, etc) - - :param lines The lines that were read - """ - threading.Thread(target=self.__threadedHandleModemNotification, kwargs={'lines': lines}).start() - - def __threadedHandleModemNotification(self, lines): - """ Implementation of _handleModemNotification() to be run in a separate thread - - :param lines The lines that were read - """ - next_line_is_te_statusreport = False - for line in lines: - if 'RING' in line: - # Incoming call (or existing call is ringing) - self._handleIncomingCall(lines) - return - elif line.startswith('+CMTI'): - # New SMS message indication - self._handleSmsReceived(line) - return - elif line.startswith('+CUSD'): - # USSD notification - either a response or a MT-USSD ("push USSD") message - self._handleUssd(lines) - return - elif line.startswith('+CDSI'): - # SMS status report - self._handleSmsStatusReport(line) - return - elif line.startswith('+CDS'): - # SMS status report at next line - next_line_is_te_statusreport = True - cdsMatch = self.CDS_REGEX.match(line) - if cdsMatch: - next_line_is_te_statusreport_length = int(cdsMatch.group(1)) - else: - next_line_is_te_statusreport_length = -1 - elif next_line_is_te_statusreport: - self._handleSmsStatusReportTe(next_line_is_te_statusreport_length, line) - return - elif line.startswith('+DTMF'): - # New incoming DTMF - self._handleIncomingDTMF(line) - return - else: - # Check for call status updates - for updateRegex, handlerFunc in self._callStatusUpdates: - match = updateRegex.match(line) - if match: - # Handle the update - handlerFunc(match) - return - # If this is reached, the notification wasn't handled - self.log.debug('Unhandled unsolicited modem notification: %s', lines) - - #Simcom modem able detect incoming DTMF - def _handleIncomingDTMF(self,line): - self.log.debug('Handling incoming DTMF') - - try: - dtmf_num=line.split(':')[1].replace(" ","") - self.dtmfpool.append(dtmf_num) - self.log.debug('DTMF number is {0}'.format(dtmf_num)) - except: - self.log.debug('Error parse DTMF number on line {0}'.format(line)) - def GetIncomingDTMF(self): - if (len(self.dtmfpool)==0): - return None - else: - return self.dtmfpool.pop(0) - - def _handleIncomingCall(self, lines): - self.log.debug('Handling incoming call') - ringLine = lines.pop(0) - if self._extendedIncomingCallIndication: - try: - callType = ringLine.split(' ', 1)[1] - except IndexError: - # Some external 3G scripts modify incoming call indication settings (issue #18) - self.log.debug('Extended incoming call indication format changed externally; re-enabling...') - callType = None - try: - # Re-enable extended format of incoming indication (optional) - self.write('AT+CRC=1') - except CommandError: - self.log.warning('Extended incoming call indication format changed externally; unable to re-enable') - self._extendedIncomingCallIndication = False - else: - callType = None - if self._callingLineIdentification and len(lines) > 0: - clipLine = lines.pop(0) - clipMatch = self.CLIP_REGEX.match(clipLine) - if clipMatch: - callerNumber = '+' + clipMatch.group(1) - ton = clipMatch.group(2) - #TODO: re-add support for this - callerName = None - #callerName = clipMatch.group(3) - #if callerName != None and len(callerName) == 0: - # callerName = None - else: - callerNumber = ton = callerName = None - else: - callerNumber = ton = callerName = None - - call = None - for activeCall in dictValuesIter(self.activeCalls): - if activeCall.number == callerNumber: - call = activeCall - call.ringCount += 1 - if call == None: - callId = len(self.activeCalls) + 1 - call = IncomingCall(self, callerNumber, ton, callerName, callId, callType) - self.activeCalls[callId] = call - self.incomingCallCallback(call) - - def _handleCallInitiated(self, regexMatch, callId=None, callType=1): - """ Handler for "outgoing call initiated" event notification line """ - if self._dialEvent: - if regexMatch: - groups = regexMatch.groups() - # Set self._dialReponse to (callId, callType) - if len(groups) >= 2: - self._dialResponse = (int(groups[0]) , int(groups[1])) - else: - self._dialResponse = (int(groups[0]), 1) # assume call type: VOICE - else: - self._dialResponse = callId, callType - self._dialEvent.set() - - def _handleCallAnswered(self, regexMatch, callId=None): - """ Handler for "outgoing call answered" event notification line """ - if regexMatch: - groups = regexMatch.groups() - if len(groups) > 1: - callId = int(groups[0]) - self.activeCalls[callId].answered = True - else: - # Call ID not available for this notificition - check for the first outgoing call that has not been answered - for call in dictValuesIter(self.activeCalls): - if call.answered == False and type(call) == Call: - call.answered = True - return - else: - # Use supplied values - self.activeCalls[callId].answered = True - - def _handleCallEnded(self, regexMatch, callId=None, filterUnanswered=False): - if regexMatch: - groups = regexMatch.groups() - if len(groups) > 0: - callId = int(groups[0]) - else: - # Call ID not available for this notification - check for the first outgoing call that is active - for call in dictValuesIter(self.activeCalls): - if type(call) == Call: - if not filterUnanswered or (filterUnanswered == True and call.answered == False): - callId = call.id - break - if callId and callId in self.activeCalls: - self.activeCalls[callId].answered = False - self.activeCalls[callId].active = False - del self.activeCalls[callId] - - def _handleCallRejected(self, regexMatch, callId=None): - """ Handler for rejected (unanswered calls being ended) - - Most modems use _handleCallEnded for handling both call rejections and remote hangups. - This method does the same, but filters for unanswered calls only. - """ - return self._handleCallEnded(regexMatch, callId, True) - - def _handleSmsReceived(self, notificationLine): - """ Handler for "new SMS" unsolicited notification line """ - self.log.info('SMS message received:'+str(notificationLine)) - if self.smsReceivedCallback is not None: - cmtiMatch = self.CMTI_REGEX.match(notificationLine) - if cmtiMatch: - msgMemory = cmtiMatch.group(1) - msgIndex = cmtiMatch.group(2) - sms = self.readStoredSms(msgIndex, msgMemory) - try: - self.smsReceivedCallback(sms) - except Exception: - self.log.error('error in smsReceivedCallback', exc_info=True) - else: - self.deleteStoredSms(msgIndex) - - def _handleSmsStatusReport(self, notificationLine): - """ Handler for SMS status reports """ - self.log.debug('SMS status report received') - cdsiMatch = self.CDSI_REGEX.match(notificationLine) - if cdsiMatch: - msgMemory = cdsiMatch.group(1) - msgIndex = cdsiMatch.group(2) - report = self.readStoredSms(msgIndex, msgMemory) - self.deleteStoredSms(msgIndex) - # Update sent SMS status if possible - if report.reference in self.sentSms: - self.sentSms[report.reference].report = report - if self._smsStatusReportEvent: - # A sendSms() call is waiting for this response - notify waiting thread - self._smsStatusReportEvent.set() - elif self.smsStatusReportCallback: - # Nothing is waiting for this report directly - use callback - try: - self.smsStatusReportCallback(report) - except Exception: - self.log.error('error in smsStatusReportCallback', exc_info=True) - - def _handleSmsStatusReportTe(self, length, notificationLine): - """ Handler for TE SMS status reports """ - self.log.info('TE SMS status report received') - try: - smsDict = decodeSmsPdu(notificationLine) - except EncodingError: - self.log.debug('Discarding notification line from +CDS response: %s', notificationLine) - else: - if smsDict['type'] == 'SMS-STATUS-REPORT': - report = StatusReport(self, int(smsDict['status']), smsDict['reference'], smsDict['number'], smsDict['time'], smsDict['discharge'], smsDict['status']) - else: - raise CommandError('Invalid PDU type for readStoredSms(): {0}'.format(smsDict['type'])) - # Update sent SMS status if possible - if report.reference in self.sentSms: - self.sentSms[report.reference].report = report - if self._smsStatusReportEvent: - # A sendSms() call is waiting for this response - notify waiting thread - self._smsStatusReportEvent.set() - else: - # Nothing is waiting for this report directly - use callback - try: - self.smsStatusReportCallback(report) - except Exception: - self.log.error('error in smsStatusReportCallback', exc_info=True) - - def readStoredSms(self, index, memory=None): - """ Reads and returns the SMS message at the specified index - - :param index: The index of the SMS message in the specified memory - :type index: int - :param memory: The memory type to read from. If None, use the current default SMS read memory - :type memory: str or None - - :raise CommandError: if unable to read the stored message - - :return: The SMS message - :rtype: subclass of gsmmodem.modem.Sms (either ReceivedSms or StatusReport) - """ - # Switch to the correct memory type if required - self._setSmsMemory(readDelete=memory) - msgData = self.write('AT+CMGR={0}'.format(index)) - # Parse meta information - if self.smsTextMode: - cmgrMatch = self.CMGR_SM_DELIVER_REGEX_TEXT.match(msgData[0]) - if cmgrMatch: - msgStatus, number, msgTime = cmgrMatch.groups() - msgText = '\n'.join(msgData[1:-1]) - return ReceivedSms(self, Sms.TEXT_MODE_STATUS_MAP[msgStatus], number, parseTextModeTimeStr(msgTime), msgText) - else: - # Try parsing status report - cmgrMatch = self.CMGR_SM_REPORT_REGEXT_TEXT.match(msgData[0]) - if cmgrMatch: - msgStatus, reference, number, sentTime, deliverTime, deliverStatus = cmgrMatch.groups() - if msgStatus.startswith('"'): - msgStatus = msgStatus[1:-1] - if len(msgStatus) == 0: - msgStatus = "REC UNREAD" - return StatusReport(self, Sms.TEXT_MODE_STATUS_MAP[msgStatus], int(reference), number, parseTextModeTimeStr(sentTime), parseTextModeTimeStr(deliverTime), int(deliverStatus)) - else: - raise CommandError('Failed to parse text-mode SMS message +CMGR response: {0}'.format(msgData)) - else: - cmgrMatch = self.CMGR_REGEX_PDU.match(msgData[0]) - if not cmgrMatch: - raise CommandError('Failed to parse PDU-mode SMS message +CMGR response: {0}'.format(msgData)) - stat, alpha, length = cmgrMatch.groups() - try: - stat = int(stat) - except Exception: - # Some modems (ZTE) do not always read return status - default to RECEIVED UNREAD - stat = Sms.STATUS_RECEIVED_UNREAD - pdu = msgData[1] - smsDict = decodeSmsPdu(pdu) - if smsDict['type'] == 'SMS-DELIVER': - return ReceivedSms(self, int(stat), smsDict['number'], smsDict['time'], smsDict['text'], smsDict['smsc'], smsDict.get('udh', [])) - elif smsDict['type'] == 'SMS-STATUS-REPORT': - return StatusReport(self, int(stat), smsDict['reference'], smsDict['number'], smsDict['time'], smsDict['discharge'], smsDict['status']) - else: - raise CommandError('Invalid PDU type for readStoredSms(): {0}'.format(smsDict['type'])) - - def deleteStoredSms(self, index, memory=None): - """ Deletes the SMS message stored at the specified index in modem/SIM card memory - - :param index: The index of the SMS message in the specified memory - :type index: int - :param memory: The memory type to delete from. If None, use the current default SMS read/delete memory - :type memory: str or None - - :raise CommandError: if unable to delete the stored message - """ - self._setSmsMemory(readDelete=memory) - self.write('AT+CMGD={0},0'.format(index)) - # TODO: make a check how many params are supported by the modem and use the right command. For example, Siemens MC35, TC35 take only one parameter. - #self.write('AT+CMGD={0}'.format(index)) - - def deleteMultipleStoredSms(self, delFlag=4, memory=None): - """ Deletes all SMS messages that have the specified read status. - - The messages are read from the memory set by the "memory" parameter. - The value of the "delFlag" paramater is the same as the "DelFlag" parameter of the +CMGD command: - 1: Delete All READ messages - 2: Delete All READ and SENT messages - 3: Delete All READ, SENT and UNSENT messages - 4: Delete All messages (this is the default) - - :param delFlag: Controls what type of messages to delete; see description above. - :type delFlag: int - :param memory: The memory type to delete from. If None, use the current default SMS read/delete memory - :type memory: str or None - :param delete: If True, delete returned messages from the device/SIM card - :type delete: bool - - :raise ValueErrror: if "delFlag" is not in range [1,4] - :raise CommandError: if unable to delete the stored messages - """ - if 0 < delFlag <= 4: - self._setSmsMemory(readDelete=memory) - self.write('AT+CMGD=1,{0}'.format(delFlag)) - else: - raise ValueError('"delFlag" must be in range [1,4]') - - def _handleUssd(self, lines): - """ Handler for USSD event notification line(s) """ - if self._ussdSessionEvent: - # A sendUssd() call is waiting for this response - parse it - self._ussdResponse = self._parseCusdResponse(lines) - # Notify waiting thread - self._ussdSessionEvent.set() - - def _parseCusdResponse(self, lines): - """ Parses one or more +CUSD notification lines (for USSD) - :return: USSD response object - :rtype: gsmmodem.modem.Ussd - """ - if len(lines) > 1: - # Issue #20: Some modem/network combinations use \r\n as in-message EOL indicators; - # - join lines to compensate for that (thanks to davidjb for the fix) - # Also, look for more than one +CUSD response because of certain modems' strange behaviour - cusdMatches = list(self.CUSD_REGEX.finditer('\r\n'.join(lines))) - else: - # Single standard +CUSD response - cusdMatches = [self.CUSD_REGEX.match(lines[0])] - message = None - sessionActive = True - if len(cusdMatches) > 1: - self.log.debug('Multiple +CUSD responses received; filtering...') - # Some modems issue a non-standard "extra" +CUSD notification for releasing the session - for cusdMatch in cusdMatches: - if cusdMatch.group(1) == '2': - # Set the session to inactive, but ignore the message - self.log.debug('Ignoring "session release" message: %s', cusdMatch.group(2)) - sessionActive = False - else: - # Not a "session release" message - message = cusdMatch.group(2) - if sessionActive and cusdMatch.group(1) != '1': - sessionActive = False - else: - sessionActive = cusdMatches[0].group(1) == '1' - message = cusdMatches[0].group(2) - return Ussd(self, sessionActive, message) - - def _placeHolderCallback(self, *args): - """ Does nothing """ - self.log.debug('called with args: {0}'.format(args)) - - def _pollCallStatus(self, expectedState, callId=None, timeout=None): - """ Poll the status of outgoing calls. - This is used for modems that do not have a known set of call status update notifications. - - :param expectedState: The internal state we are waiting for. 0 == initiated, 1 == answered, 2 = hangup - :type expectedState: int - - :raise TimeoutException: If a timeout was specified, and has occurred - """ - callDone = False - timeLeft = timeout or 999999 - while self.alive and not callDone and timeLeft > 0: - time.sleep(0.5) - if expectedState == 0: # Only call initializing can timeout - timeLeft -= 0.5 - try: - clcc = self._pollCallStatusRegex.match(self.write('AT+CLCC')[0]) - except TimeoutException as timeout: - # Can happend if the call was ended during our time.sleep() call - clcc = None - if clcc: - direction = int(clcc.group(2)) - if direction == 0: # Outgoing call - # Determine call state - stat = int(clcc.group(3)) - if expectedState == 0: # waiting for call initiated - if stat == 2 or stat == 3: # Dialing or ringing ("alerting") - callId = int(clcc.group(1)) - callType = int(clcc.group(4)) - self._handleCallInitiated(None, callId, callType) # if self_dialEvent is None, this does nothing - expectedState = 1 # Now wait for call answer - elif expectedState == 1: # waiting for call to be answered - if stat == 0: # Call active - callId = int(clcc.group(1)) - self._handleCallAnswered(None, callId) - expectedState = 2 # Now wait for call hangup - elif expectedState == 2 : # waiting for remote hangup - # Since there was no +CLCC response, the call is no longer active - callDone = True - self._handleCallEnded(None, callId=callId) - elif expectedState == 1: # waiting for call to be answered - # Call was rejected - callDone = True - self._handleCallRejected(None, callId=callId) - if timeLeft <= 0: - raise TimeoutException() - -class Ussd(object): - """ Unstructured Supplementary Service Data (USSD) message. - - This class contains convenient methods for replying to a USSD prompt - and to cancel the USSD session - """ - - def __init__(self, gsmModem, sessionActive, message): - self._gsmModem = weakref.proxy(gsmModem) - # Indicates if the session is active (True) or has been closed (False) - self.sessionActive = sessionActive - self.message = message - - def reply(self, message): - """ Sends a reply to this USSD message in the same USSD session - - :raise InvalidStateException: if the USSD session is not active (i.e. it has ended) - - :return: The USSD response message/session (as a Ussd object) - """ - if self.sessionActive: - return self._gsmModem.sendUssd(message) - else: - raise InvalidStateException('USSD session is inactive') - - def cancel(self): - """ Terminates/cancels the USSD session (without sending a reply) - - Does nothing if the USSD session is inactive. - """ - if self.sessionActive: - self._gsmModem.write('AT+CUSD=2') diff --git a/gsmmodem/pdu.py b/gsmmodem/pdu.py deleted file mode 100644 index 167ce2f..0000000 --- a/gsmmodem/pdu.py +++ /dev/null @@ -1,953 +0,0 @@ -# -*- coding: utf8 -*- - -""" SMS PDU encoding methods """ - -from __future__ import unicode_literals - -import sys, codecs -from datetime import datetime, timedelta, tzinfo -from copy import copy -from .exceptions import EncodingError - -# For Python 3 support -PYTHON_VERSION = sys.version_info[0] -if PYTHON_VERSION >= 3: - MAX_INT = sys.maxsize - dictItemsIter = dict.items - xrange = range - unichr = chr - toByteArray = lambda x: bytearray(codecs.decode(x, 'hex_codec')) if type(x) == bytes else bytearray(codecs.decode(bytes(x, 'ascii'), 'hex_codec')) if type(x) == str else x - rawStrToByteArray = lambda x: bytearray(bytes(x, 'latin-1')) - -TEXT_MODE = ('\n\r !\"#%&\'()*+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz') # TODO: Check if all of them are supported inside text mode -# Tables can be found at: http://en.wikipedia.org/wiki/GSM_03.38#GSM_7_bit_default_alphabet_and_extension_table_of_3GPP_TS_23.038_.2F_GSM_03.38 -GSM7_BASIC = ('@£$¥èéùìòÇ\nØø\rÅåΔ_ΦΓΛΩΠΨΣΘΞ\x1bÆæßÉ !\"#¤%&\'()*+,-./0123456789:;<=>?¡ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÑÜ`¿abcdefghijklmnopqrstuvwxyzäöñüà') -GSM7_EXTENDED = {chr(0xFF): 0x0A, - #CR2: chr(0x0D), - '^': chr(0x14), - #SS2: chr(0x1B), - '{': chr(0x28), - '}': chr(0x29), - '\\': chr(0x2F), - '[': chr(0x3C), - '~': chr(0x3D), - ']': chr(0x3E), - '|': chr(0x40), - '€': chr(0x65)} -# Maximum message sizes for each data coding -MAX_MESSAGE_LENGTH = {0x00: 160, # GSM-7 - 0x04: 140, # 8-bit - 0x08: 70} # UCS2 - -# Maximum message sizes for each data coding for multipart messages -MAX_MULTIPART_MESSAGE_LENGTH = {0x00: 153, # GSM-7 - 0x04: 133, # 8-bit TODO: Check this value! - 0x08: 67} # UCS2 - -class SmsPduTzInfo(tzinfo): - """ Simple implementation of datetime.tzinfo for handling timestamp GMT offsets specified in SMS PDUs """ - - def __init__(self, pduOffsetStr=None): - """ - :param pduOffset: 2 semi-octet timezone offset as specified by PDU (see GSM 03.40 spec) - :type pduOffset: str - - Note: pduOffsetStr is optional in this constructor due to the special requirement for pickling - mentioned in the Python docs. It should, however, be used (or otherwise pduOffsetStr must be - manually set) - """ - self._offset = None - if pduOffsetStr != None: - self._setPduOffsetStr(pduOffsetStr) - - def _setPduOffsetStr(self, pduOffsetStr): - # See if the timezone difference is positive/negative by checking MSB of first semi-octet - tzHexVal = int(pduOffsetStr, 16) - # In order to read time zone 'minute' shift: - # - Remove MSB (sign) - # - Read HEX value as decimal - # - Multiply by 15 - # See: https://en.wikipedia.org/wiki/GSM_03.40#Time_Format - - # Possible fix for #15 - convert invalid character to BCD-value - if (tzHexVal & 0x0F) > 0x9: - tzHexVal +=0x06 - - tzOffsetMinutes = int('{0:0>2X}'.format(tzHexVal & 0x7F)) * 15 - - if tzHexVal & 0x80 == 0: # positive - self._offset = timedelta(minutes=(tzOffsetMinutes)) - else: # negative - self._offset = timedelta(minutes=(-tzOffsetMinutes)) - - def utcoffset(self, dt): - return self._offset - - def dst(self, dt): - """ We do not have enough info in the SMS PDU to implement daylight savings time """ - return timedelta(0) - - -class InformationElement(object): - """ User Data Header (UDH) Information Element (IE) implementation - - This represents a single field ("information element") in the PDU's - User Data Header. The UDH itself contains one or more of these - information elements. - - If the IEI (IE identifier) is recognized, the class will automatically - specialize into one of the subclasses of InformationElement, - e.g. Concatenation or PortAddress, allowing the user to easily - access the specific (and useful) attributes of these special cases. - """ - - def __new__(cls, *args, **kwargs): #iei, ieLen, ieData): - """ Causes a new InformationElement class, or subclass - thereof, to be created. If the IEI is recognized, a specific - subclass of InformationElement is returned """ - if len(args) > 0: - targetClass = IEI_CLASS_MAP.get(args[0], cls) - elif 'iei' in kwargs: - targetClass = IEI_CLASS_MAP.get(kwargs['iei'], cls) - else: - return super(InformationElement, cls).__new__(cls) - return super(InformationElement, targetClass).__new__(targetClass) - - def __init__(self, iei, ieLen=0, ieData=None): - self.id = iei # IEI - self.dataLength = ieLen # IE Length - self.data = ieData or [] # raw IE data - - @classmethod - def decode(cls, byteIter): - """ Decodes a single IE at the current position in the specified - byte iterator - - :return: An InformationElement (or subclass) instance for the decoded IE - :rtype: InformationElement, or subclass thereof - """ - iei = next(byteIter) - ieLen = next(byteIter) - ieData = [] - for i in xrange(ieLen): - ieData.append(next(byteIter)) - return InformationElement(iei, ieLen, ieData) - - def encode(self): - """ Encodes this IE and returns the resulting bytes """ - result = bytearray() - result.append(self.id) - result.append(self.dataLength) - result.extend(self.data) - return result - - def __len__(self): - """ Exposes the IE's total length (including the IEI and IE length octet) in octets """ - return self.dataLength + 2 - - -class Concatenation(InformationElement): - """ IE that indicates SMS concatenation. - - This implementation handles both 8-bit and 16-bit concatenation - indication, and exposes the specific useful details of this - IE as instance variables. - - Exposes: - - reference - CSMS reference number, must be same for all the SMS parts in the CSMS - parts - total number of parts. The value shall remain constant for every short - message which makes up the concatenated short message. If the value is zero then - the receiving entity shall ignore the whole information element - number - this part's number in the sequence. The value shall start at 1 and - increment for every short message which makes up the concatenated short message - """ - - def __init__(self, iei=0x00, ieLen=0, ieData=None): - super(Concatenation, self).__init__(iei, ieLen, ieData) - if ieData != None: - if iei == 0x00: # 8-bit reference - self.reference, self.parts, self.number = ieData - else: # 0x08: 16-bit reference - self.reference = ieData[0] << 8 | ieData[1] - self.parts = ieData[2] - self.number = ieData[3] - - def encode(self): - if self.reference > 0xFF: - self.id = 0x08 # 16-bit reference - self.data = [self.reference >> 8, self.reference & 0xFF, self.parts, self.number] - else: - self.id = 0x00 # 8-bit reference - self.data = [self.reference, self.parts, self.number] - self.dataLength = len(self.data) - return super(Concatenation, self).encode() - - -class PortAddress(InformationElement): - """ IE that indicates an Application Port Addressing Scheme. - - This implementation handles both 8-bit and 16-bit concatenation - indication, and exposes the specific useful details of this - IE as instance variables. - - Exposes: - destination: The destination port number - source: The source port number - """ - - def __init__(self, iei=0x04, ieLen=0, ieData=None): - super(PortAddress, self).__init__(iei, ieLen, ieData) - if ieData != None: - if iei == 0x04: # 8-bit port addressing scheme - self.destination, self.source = ieData - else: # 0x05: 16-bit port addressing scheme - self.destination = ieData[0] << 8 | ieData[1] - self.source = ieData[2] << 8 | ieData[3] - - def encode(self): - if self.destination > 0xFF or self.source > 0xFF: - self.id = 0x05 # 16-bit - self.data = [self.destination >> 8, self.destination & 0xFF, self.source >> 8, self.source & 0xFF] - else: - self.id = 0x04 # 8-bit - self.data = [self.destination, self.source] - self.dataLength = len(self.data) - return super(PortAddress, self).encode() - - -# Map of recognized IEIs -IEI_CLASS_MAP = {0x00: Concatenation, # Concatenated short messages, 8-bit reference number - 0x08: Concatenation, # Concatenated short messages, 16-bit reference number - 0x04: PortAddress, # Application port addressing scheme, 8 bit address - 0x05: PortAddress # Application port addressing scheme, 16 bit address - } - - -class Pdu(object): - """ Encoded SMS PDU. Contains raw PDU data and related meta-information """ - - def __init__(self, data, tpduLength): - """ Constructor - :param data: the raw PDU data (as bytes) - :type data: bytearray - :param tpduLength: Length (in bytes) of the TPDU - :type tpduLength: int - """ - self.data = data - self.tpduLength = tpduLength - - def __str__(self): - global PYTHON_VERSION - if PYTHON_VERSION < 3: - return str(self.data).encode('hex').upper() - else: #pragma: no cover - return str(codecs.encode(self.data, 'hex_codec'), 'ascii').upper() - - -def encodeSmsSubmitPdu(number, text, reference=0, validity=None, smsc=None, requestStatusReport=True, rejectDuplicates=False, sendFlash=False): - """ Creates an SMS-SUBMIT PDU for sending a message with the specified text to the specified number - - :param number: the destination mobile number - :type number: str - :param text: the message text - :type text: str - :param reference: message reference number (see also: rejectDuplicates parameter) - :type reference: int - :param validity: message validity period (absolute or relative) - :type validity: datetime.timedelta (relative) or datetime.datetime (absolute) - :param smsc: SMSC number to use (leave None to use default) - :type smsc: str - :param rejectDuplicates: Flag that controls the TP-RD parameter (messages with same destination and reference may be rejected if True) - :type rejectDuplicates: bool - - :return: A list of one or more tuples containing the SMS PDU (as a bytearray, and the length of the TPDU part - :rtype: list of tuples - """ - if PYTHON_VERSION < 3: - if type(text) == str: - text = text.decode('UTF-8') - - tpduFirstOctet = 0x01 # SMS-SUBMIT PDU - if validity != None: - # Validity period format (TP-VPF) is stored in bits 4,3 of the first TPDU octet - if type(validity) == timedelta: - # Relative (TP-VP is integer) - tpduFirstOctet |= 0x10 # bit4 == 1, bit3 == 0 - validityPeriod = [_encodeRelativeValidityPeriod(validity)] - elif type(validity) == datetime: - # Absolute (TP-VP is semi-octet encoded date) - tpduFirstOctet |= 0x18 # bit4 == 1, bit3 == 1 - validityPeriod = _encodeTimestamp(validity) - else: - raise TypeError('"validity" must be of type datetime.timedelta (for relative value) or datetime.datetime (for absolute value)') - else: - validityPeriod = None - if rejectDuplicates: - tpduFirstOctet |= 0x04 # bit2 == 1 - if requestStatusReport: - tpduFirstOctet |= 0x20 # bit5 == 1 - - # Encode message text and set data coding scheme based on text contents - try: - encodedTextLength = len(encodeGsm7(text)) - except ValueError: - # Cannot encode text using GSM-7; use UCS2 instead - encodedTextLength = len(text) - alphabet = 0x08 # UCS2 - else: - alphabet = 0x00 # GSM-7 - - # Check if message should be concatenated - if encodedTextLength > MAX_MESSAGE_LENGTH[alphabet]: - # Text too long for single PDU - add "concatenation" User Data Header - concatHeaderPrototype = Concatenation() - concatHeaderPrototype.reference = reference - - # Devide whole text into parts - if alphabet == 0x00: - pduTextParts = divideTextGsm7(text) - elif alphabet == 0x08: - pduTextParts = divideTextUcs2(text) - else: - raise NotImplementedError - - pduCount = len(pduTextParts) - concatHeaderPrototype.parts = pduCount - tpduFirstOctet |= 0x40 - else: - concatHeaderPrototype = None - pduCount = 1 - - # Construct required PDU(s) - pdus = [] - for i in xrange(pduCount): - pdu = bytearray() - if smsc: - pdu.extend(_encodeAddressField(smsc, smscField=True)) - else: - pdu.append(0x00) # Don't supply an SMSC number - use the one configured in the device - - udh = bytearray() - if concatHeaderPrototype != None: - concatHeader = copy(concatHeaderPrototype) - concatHeader.number = i + 1 - pduText = pduTextParts[i] - pduTextLength = len(pduText) - udh.extend(concatHeader.encode()) - else: - pduText = text - - udhLen = len(udh) - - pdu.append(tpduFirstOctet) - pdu.append(reference) # message reference - # Add destination number - pdu.extend(_encodeAddressField(number)) - pdu.append(0x00) # Protocol identifier - no higher-level protocol - - pdu.append(alphabet if not sendFlash else (0x10 if alphabet == 0x00 else 0x18)) - if validityPeriod: - pdu.extend(validityPeriod) - - if alphabet == 0x00: # GSM-7 - encodedText = encodeGsm7(pduText) - userDataLength = len(encodedText) # Payload size in septets/characters - if udhLen > 0: - shift = ((udhLen + 1) * 8) % 7 # "fill bits" needed to make the UDH end on a septet boundary - userData = packSeptets(encodedText, padBits=shift) - if shift > 0: - userDataLength += 1 # take padding bits into account - else: - userData = packSeptets(encodedText) - elif alphabet == 0x08: # UCS2 - userData = encodeUcs2(pduText) - userDataLength = len(userData) - - if udhLen > 0: - userDataLength += udhLen + 1 # +1 for the UDH length indicator byte - pdu.append(userDataLength) - pdu.append(udhLen) - pdu.extend(udh) # UDH - else: - pdu.append(userDataLength) - pdu.extend(userData) # User Data (message payload) - tpdu_length = len(pdu) - 1 - pdus.append(Pdu(pdu, tpdu_length)) - return pdus - -def decodeSmsPdu(pdu): - """ Decodes SMS pdu data and returns a tuple in format (number, text) - - :param pdu: PDU data as a hex string, or a bytearray containing PDU octects - :type pdu: str or bytearray - - :raise EncodingError: If the specified PDU data cannot be decoded - - :return: The decoded SMS data as a dictionary - :rtype: dict - """ - try: - pdu = toByteArray(pdu) - except Exception as e: - # Python 2 raises TypeError, Python 3 raises binascii.Error - raise EncodingError(e) - result = {} - pduIter = iter(pdu) - - smscNumber, smscBytesRead = _decodeAddressField(pduIter, smscField=True) - result['smsc'] = smscNumber - result['tpdu_length'] = len(pdu) - smscBytesRead - - tpduFirstOctet = next(pduIter) - - pduType = tpduFirstOctet & 0x03 # bits 1-0 - if pduType == 0x00: # SMS-DELIVER or SMS-DELIVER REPORT - result['type'] = 'SMS-DELIVER' - result['number'] = _decodeAddressField(pduIter)[0] - result['protocol_id'] = next(pduIter) - dataCoding = _decodeDataCoding(next(pduIter)) - result['time'] = _decodeTimestamp(pduIter) - userDataLen = next(pduIter) - udhPresent = (tpduFirstOctet & 0x40) != 0 - ud = _decodeUserData(pduIter, userDataLen, dataCoding, udhPresent) - result.update(ud) - elif pduType == 0x01: # SMS-SUBMIT or SMS-SUBMIT-REPORT - result['type'] = 'SMS-SUBMIT' - result['reference'] = next(pduIter) # message reference - we don't really use this - result['number'] = _decodeAddressField(pduIter)[0] - result['protocol_id'] = next(pduIter) - dataCoding = _decodeDataCoding(next(pduIter)) - validityPeriodFormat = (tpduFirstOctet & 0x18) >> 3 # bits 4,3 - if validityPeriodFormat == 0x02: # TP-VP field present and integer represented (relative) - result['validity'] = _decodeRelativeValidityPeriod(next(pduIter)) - elif validityPeriodFormat == 0x03: # TP-VP field present and semi-octet represented (absolute) - result['validity'] = _decodeTimestamp(pduIter) - userDataLen = next(pduIter) - udhPresent = (tpduFirstOctet & 0x40) != 0 - ud = _decodeUserData(pduIter, userDataLen, dataCoding, udhPresent) - result.update(ud) - elif pduType == 0x02: # SMS-STATUS-REPORT or SMS-COMMAND - result['type'] = 'SMS-STATUS-REPORT' - result['reference'] = next(pduIter) - result['number'] = _decodeAddressField(pduIter)[0] - result['time'] = _decodeTimestamp(pduIter) - result['discharge'] = _decodeTimestamp(pduIter) - result['status'] = next(pduIter) - else: - raise EncodingError('Unknown SMS message type: {0}. First TPDU octet was: {1}'.format(pduType, tpduFirstOctet)) - - return result - -def _decodeUserData(byteIter, userDataLen, dataCoding, udhPresent): - """ Decodes PDU user data (UDHI (if present) and message text) """ - result = {} - if udhPresent: - # User Data Header is present - result['udh'] = [] - udhLen = next(byteIter) - ieLenRead = 0 - # Parse and store UDH fields - while ieLenRead < udhLen: - ie = InformationElement.decode(byteIter) - ieLenRead += len(ie) - result['udh'].append(ie) - del ieLenRead - if dataCoding == 0x00: # GSM-7 - # Since we are using 7-bit data, "fill bits" may have been added to make the UDH end on a septet boundary - shift = ((udhLen + 1) * 8) % 7 # "fill bits" needed to make the UDH end on a septet boundary - # Simulate another "shift" in the unpackSeptets algorithm in order to ignore the fill bits - prevOctet = next(byteIter) - shift += 1 - - if dataCoding == 0x00: # GSM-7 - if udhPresent: - userDataSeptets = unpackSeptets(byteIter, userDataLen, prevOctet, shift) - else: - userDataSeptets = unpackSeptets(byteIter, userDataLen) - result['text'] = decodeGsm7(userDataSeptets) - elif dataCoding == 0x02: # UCS2 - result['text'] = decodeUcs2(byteIter, userDataLen) - else: # 8-bit (data) - userData = [] - for b in byteIter: - userData.append(unichr(b)) - result['text'] = ''.join(userData) - return result - -def _decodeRelativeValidityPeriod(tpVp): - """ Calculates the relative SMS validity period (based on the table in section 9.2.3.12 of GSM 03.40) - :rtype: datetime.timedelta - """ - if tpVp <= 143: - return timedelta(minutes=((tpVp + 1) * 5)) - elif 144 <= tpVp <= 167: - return timedelta(hours=12, minutes=((tpVp - 143) * 30)) - elif 168 <= tpVp <= 196: - return timedelta(days=(tpVp - 166)) - elif 197 <= tpVp <= 255: - return timedelta(weeks=(tpVp - 192)) - else: - raise ValueError('tpVp must be in range [0, 255]') - -def _encodeRelativeValidityPeriod(validityPeriod): - """ Encodes the specified relative validity period timedelta into an integer for use in an SMS PDU - (based on the table in section 9.2.3.12 of GSM 03.40) - - :param validityPeriod: The validity period to encode - :type validityPeriod: datetime.timedelta - :rtype: int - """ - # Python 2.6 does not have timedelta.total_seconds(), so compute it manually - #seconds = validityPeriod.total_seconds() - seconds = validityPeriod.seconds + (validityPeriod.days * 24 * 3600) - if seconds <= 43200: # 12 hours - tpVp = int(seconds / 300) - 1 # divide by 5 minutes, subtract 1 - elif seconds <= 86400: # 24 hours - tpVp = int((seconds - 43200) / 1800) + 143 # subtract 12 hours, divide by 30 minutes. add 143 - elif validityPeriod.days <= 30: # 30 days - tpVp = validityPeriod.days + 166 # amount of days + 166 - elif validityPeriod.days <= 441: # max value of tpVp is 255 - tpVp = int(validityPeriod.days / 7) + 192 # amount of weeks + 192 - else: - raise ValueError('Validity period too long; tpVp limited to 1 octet (max value: 255)') - return tpVp - -def _decodeTimestamp(byteIter): - """ Decodes a 7-octet timestamp """ - dateStr = decodeSemiOctets(byteIter, 7) - timeZoneStr = dateStr[-2:] - return datetime.strptime(dateStr[:-2], '%y%m%d%H%M%S').replace(tzinfo=SmsPduTzInfo(timeZoneStr)) - -def _encodeTimestamp(timestamp): - """ Encodes a 7-octet timestamp from the specified date - - Note: the specified timestamp must have a UTC offset set; you can use gsmmodem.util.SimpleOffsetTzInfo for simple cases - - :param timestamp: The timestamp to encode - :type timestamp: datetime.datetime - - :return: The encoded timestamp - :rtype: bytearray - """ - if timestamp.tzinfo == None: - raise ValueError('Please specify time zone information for the timestamp (e.g. by using gsmmodem.util.SimpleOffsetTzInfo)') - - # See if the timezone difference is positive/negative - tzDelta = timestamp.utcoffset() - if tzDelta.days >= 0: - tzValStr = '{0:0>2}'.format(int(tzDelta.seconds / 60 / 15)) - else: # negative - tzVal = int((tzDelta.days * -3600 * 24 - tzDelta.seconds) / 60 / 15) # calculate offset in 0.25 hours - # Cast as literal hex value and set MSB of first semi-octet of timezone to 1 to indicate negative value - tzVal = int('{0:0>2}'.format(tzVal), 16) | 0x80 - tzValStr = '{0:0>2X}'.format(tzVal) - - dateStr = timestamp.strftime('%y%m%d%H%M%S') + tzValStr - - return encodeSemiOctets(dateStr) - -def _decodeDataCoding(octet): - if octet & 0xC0 == 0: - #compressed = octect & 0x20 - alphabet = (octet & 0x0C) >> 2 - return alphabet # 0x00 == GSM-7, 0x01 == 8-bit data, 0x02 == UCS2 - # We ignore other coding groups - return 0 - -def nibble2octet(addressLen): - return int((addressLen + 1) / 2) - -def _decodeAddressField(byteIter, smscField=False, log=False): - """ Decodes the address field at the current position of the bytearray iterator - - :param byteIter: Iterator over bytearray - :type byteIter: iter(bytearray) - - :return: Tuple containing the address value and amount of bytes read (value is or None if it is empty (zero-length)) - :rtype: tuple - """ - addressLen = next(byteIter) - if addressLen > 0: - toa = next(byteIter) - ton = (toa & 0x70) # bits 6,5,4 of type-of-address == type-of-number - if ton == 0x50: - # Alphanumberic number - addressLen = nibble2octet(addressLen) - septets = unpackSeptets(byteIter, addressLen) - addressValue = decodeGsm7(septets) - return (addressValue, (addressLen + 2)) - else: - # ton == 0x00: Unknown (might be international, local, etc) - leave as is - # ton == 0x20: National number - if smscField: - addressValue = decodeSemiOctets(byteIter, addressLen-1) - else: - addressLen = nibble2octet(addressLen) - addressValue = decodeSemiOctets(byteIter, addressLen) - addressLen += 1 # for the return value, add the toa byte - if ton == 0x10: # International number - addressValue = '+' + addressValue - return (addressValue, (addressLen + 1)) - else: - return (None, 1) - -def _encodeAddressField(address, smscField=False): - """ Encodes the address into an address field - - :param address: The address to encode (phone number or alphanumeric) - :type byteIter: str - - :return: Encoded SMS PDU address field - :rtype: bytearray - """ - # First, see if this is a number or an alphanumeric string - toa = 0x80 | 0x00 | 0x01 # Type-of-address start | Unknown type-of-number | ISDN/tel numbering plan - alphaNumeric = False - if address.isalnum(): - # Might just be a local number - if address.isdigit(): - # Local number - toa |= 0x20 - else: - # Alphanumeric address - toa |= 0x50 - toa &= 0xFE # switch to "unknown" numbering plan - alphaNumeric = True - else: - if address[0] == '+' and address[1:].isdigit(): - # International number - toa |= 0x10 - # Remove the '+' prefix - address = address[1:] - else: - # Alphanumeric address - toa |= 0x50 - toa &= 0xFE # switch to "unknown" numbering plan - alphaNumeric = True - if alphaNumeric: - addressValue = packSeptets(encodeGsm7(address, False)) - addressLen = len(addressValue) * 2 - else: - addressValue = encodeSemiOctets(address) - if smscField: - addressLen = len(addressValue) + 1 - else: - addressLen = len(address) - result = bytearray() - result.append(addressLen) - result.append(toa) - result.extend(addressValue) - return result - -def encodeSemiOctets(number): - """ Semi-octet encoding algorithm (e.g. for phone numbers) - - :return: bytearray containing the encoded octets - :rtype: bytearray - """ - if len(number) % 2 == 1: - number = number + 'F' # append the "end" indicator - octets = [int(number[i+1] + number[i], 16) for i in xrange(0, len(number), 2)] - return bytearray(octets) - -def decodeSemiOctets(encodedNumber, numberOfOctets=None): - """ Semi-octet decoding algorithm(e.g. for phone numbers) - - :param encodedNumber: The semi-octet-encoded telephone number (in bytearray format or hex string) - :type encodedNumber: bytearray, str or iter(bytearray) - :param numberOfOctets: The expected amount of octets after decoding (i.e. when to stop) - :type numberOfOctets: int - - :return: decoded telephone number - :rtype: string - """ - number = [] - if type(encodedNumber) in (str, bytes): - encodedNumber = bytearray(codecs.decode(encodedNumber, 'hex_codec')) - i = 0 - for octet in encodedNumber: - hexVal = hex(octet)[2:].zfill(2) - number.append(hexVal[1]) - if hexVal[0] != 'f': - number.append(hexVal[0]) - else: - break - if numberOfOctets != None: - i += 1 - if i == numberOfOctets: - break - return ''.join(number) - -def encodeTextMode(plaintext): - """ Text mode checker - - Tests whther SMS could be sent in text mode - - :param text: the text string to encode - - :raise ValueError: if the text string cannot be sent in text mode - - :return: Passed string - :rtype: str - """ - if PYTHON_VERSION >= 3: - plaintext = str(plaintext) - elif type(plaintext) == str: - plaintext = plaintext.decode('UTF-8') - - for char in plaintext: - idx = TEXT_MODE.find(char) - if idx != -1: - continue - else: - raise ValueError('Cannot encode char "{0}" inside text mode'.format(char)) - - if len(plaintext) > MAX_MESSAGE_LENGTH[0x00]: - raise ValueError('Message is too long for text mode (maximum {0} characters)'.format(MAX_MESSAGE_LENGTH[0x00])) - - return plaintext - -def encodeGsm7(plaintext, discardInvalid=False): - """ GSM-7 text encoding algorithm - - Encodes the specified text string into GSM-7 octets (characters). This method does not pack - the characters into septets. - - :param text: the text string to encode - :param discardInvalid: if True, characters that cannot be encoded will be silently discarded - - :raise ValueError: if the text string cannot be encoded using GSM-7 encoding (unless discardInvalid == True) - - :return: A bytearray containing the string encoded in GSM-7 encoding - :rtype: bytearray - """ - result = bytearray() - if PYTHON_VERSION >= 3: - plaintext = str(plaintext) - elif type(plaintext) == str: - plaintext = plaintext.decode('UTF-8') - - for char in plaintext: - idx = GSM7_BASIC.find(char) - if idx != -1: - result.append(idx) - elif char in GSM7_EXTENDED: - result.append(0x1B) # ESC - switch to extended table - result.append(ord(GSM7_EXTENDED[char])) - elif not discardInvalid: - raise ValueError('Cannot encode char "{0}" using GSM-7 encoding'.format(char)) - return result - -def decodeGsm7(encodedText): - """ GSM-7 text decoding algorithm - - Decodes the specified GSM-7-encoded string into a plaintext string. - - :param encodedText: the text string to encode - :type encodedText: bytearray or str - - :return: A string containing the decoded text - :rtype: str - """ - result = [] - if type(encodedText) == str: - encodedText = rawStrToByteArray(encodedText) #bytearray(encodedText) - iterEncoded = iter(encodedText) - for b in iterEncoded: - if b == 0x1B: # ESC - switch to extended table - c = chr(next(iterEncoded)) - for char, value in dictItemsIter(GSM7_EXTENDED): - if c == value: - result.append(char) - break - else: - result.append(GSM7_BASIC[b]) - return ''.join(result) - -def divideTextGsm7(plainText): - """ GSM7 message dividing algorithm - - Divides text into list of chunks that could be stored in a single, GSM7-encoded SMS message. - - :param plainText: the text string to divide - :type plainText: str - - :return: A list of strings - :rtype: list of str - """ - result = [] - - plainStartPtr = 0 - plainStopPtr = 0 - chunkByteSize = 0 - - if PYTHON_VERSION >= 3: - plainText = str(plainText) - while plainStopPtr < len(plainText): - char = plainText[plainStopPtr] - idx = GSM7_BASIC.find(char) - if idx != -1: - chunkByteSize = chunkByteSize + 1; - elif char in GSM7_EXTENDED: - chunkByteSize = chunkByteSize + 2; - else: - raise ValueError('Cannot encode char "{0}" using GSM-7 encoding'.format(char)) - - plainStopPtr = plainStopPtr + 1 - if chunkByteSize > MAX_MULTIPART_MESSAGE_LENGTH[0x00]: - plainStopPtr = plainStopPtr - 1 - - if chunkByteSize >= MAX_MULTIPART_MESSAGE_LENGTH[0x00]: - result.append(plainText[plainStartPtr:plainStopPtr]) - plainStartPtr = plainStopPtr - chunkByteSize = 0 - - if chunkByteSize > 0: - result.append(plainText[plainStartPtr:]) - - return result - -def packSeptets(octets, padBits=0): - """ Packs the specified octets into septets - - Typically the output of encodeGsm7 would be used as input to this function. The resulting - bytearray contains the original GSM-7 characters packed into septets ready for transmission. - - :rtype: bytearray - """ - result = bytearray() - if type(octets) == str: - octets = iter(rawStrToByteArray(octets)) - elif type(octets) == bytearray: - octets = iter(octets) - shift = padBits - if padBits == 0: - try: - prevSeptet = next(octets) - except StopIteration: - return result - else: - prevSeptet = 0x00 - for octet in octets: - septet = octet & 0x7f; - if shift == 7: - # prevSeptet has already been fully added to result - shift = 0 - prevSeptet = septet - continue - b = ((septet << (7 - shift)) & 0xFF) | (prevSeptet >> shift) - prevSeptet = septet - shift += 1 - result.append(b) - if shift != 7: - # There is a bit "left over" from prevSeptet - result.append(prevSeptet >> shift) - return result - -def unpackSeptets(septets, numberOfSeptets=None, prevOctet=None, shift=7): - """ Unpacks the specified septets into octets - - :param septets: Iterator or iterable containing the septets packed into octets - :type septets: iter(bytearray), bytearray or str - :param numberOfSeptets: The amount of septets to unpack (or None for all remaining in "septets") - :type numberOfSeptets: int or None - - :return: The septets unpacked into octets - :rtype: bytearray - """ - result = bytearray() - if type(septets) == str: - septets = iter(rawStrToByteArray(septets)) - elif type(septets) == bytearray: - septets = iter(septets) - if numberOfSeptets == None: - numberOfSeptets = MAX_INT # Loop until StopIteration - if numberOfSeptets == 0: - return result - i = 0 - for octet in septets: - i += 1 - if shift == 7: - shift = 1 - if prevOctet != None: - result.append(prevOctet >> 1) - if i <= numberOfSeptets: - result.append(octet & 0x7F) - prevOctet = octet - if i == numberOfSeptets: - break - else: - continue - b = ((octet << shift) & 0x7F) | (prevOctet >> (8 - shift)) - - prevOctet = octet - result.append(b) - shift += 1 - - if i == numberOfSeptets: - break - if shift == 7 and prevOctet: - b = prevOctet >> (8 - shift) - if b: - # The final septet value still needs to be unpacked - result.append(b) - return result - -def decodeUcs2(byteIter, numBytes): - """ Decodes UCS2-encoded text from the specified byte iterator, up to a maximum of numBytes """ - userData = [] - i = 0 - try: - while i < numBytes: - userData.append(unichr((next(byteIter) << 8) | next(byteIter))) - i += 2 - except StopIteration: - # Not enough bytes in iterator to reach numBytes; return what we have - pass - return ''.join(userData) - -def encodeUcs2(text): - """ UCS2 text encoding algorithm - - Encodes the specified text string into UCS2-encoded bytes. - - :param text: the text string to encode - - :return: A bytearray containing the string encoded in UCS2 encoding - :rtype: bytearray - """ - result = bytearray() - - for b in map(ord, text): - result.append(b >> 8) - result.append(b & 0xFF) - return result - -def divideTextUcs2(plainText): - """ UCS-2 message dividing algorithm - - Divides text into list of chunks that could be stored in a single, UCS-2 -encoded SMS message. - - :param plainText: the text string to divide - :type plainText: str - - :return: A list of strings - :rtype: list of str - """ - result = [] - resultLength = 0 - - fullChunksCount = int(len(plainText) / MAX_MULTIPART_MESSAGE_LENGTH[0x08]) - for i in range(fullChunksCount): - result.append(plainText[i * MAX_MULTIPART_MESSAGE_LENGTH[0x08] : (i + 1) * MAX_MULTIPART_MESSAGE_LENGTH[0x08]]) - resultLength = resultLength + MAX_MULTIPART_MESSAGE_LENGTH[0x08] - - # Add last, not fully filled chunk - if resultLength < len(plainText): - result.append(plainText[resultLength:]) - - return result diff --git a/gsmmodem/serial_comms.py b/gsmmodem/serial_comms.py deleted file mode 100644 index 44544fe..0000000 --- a/gsmmodem/serial_comms.py +++ /dev/null @@ -1,147 +0,0 @@ -#!/usr/bin/env python - -""" Low-level serial communications handling """ - -import sys, threading, logging - -import re -import serial # pyserial: http://pyserial.sourceforge.net - -from .exceptions import TimeoutException -from . import compat # For Python 2.6 compatibility - - -class SerialComms(object): - """ Wraps all low-level serial communications (actual read/write operations) """ - - log = logging.getLogger('gsmmodem.serial_comms.SerialComms') - - # End-of-line read terminator - RX_EOL_SEQ = b'\r\n' - # End-of-response terminator - RESPONSE_TERM = re.compile('^OK|ERROR|(\+CM[ES] ERROR: \d+)|(COMMAND NOT SUPPORT)$') - # Default timeout for serial port reads (in seconds) - timeout = 1 - - def __init__(self, port, baudrate=115200, notifyCallbackFunc=None, fatalErrorCallbackFunc=None, *args, **kwargs): - """ Constructor - - :param fatalErrorCallbackFunc: function to call if a fatal error occurs in the serial device reading thread - :type fatalErrorCallbackFunc: func - """ - self.alive = False - self.port = port - self.baudrate = baudrate - - self._responseEvent = None # threading.Event() - self._expectResponseTermSeq = None # expected response terminator sequence - self._response = None # Buffer containing response to a written command - self._notification = [] # Buffer containing lines from an unsolicited notification from the modem - # Reentrant lock for managing concurrent write access to the underlying serial port - self._txLock = threading.RLock() - - self.notifyCallback = notifyCallbackFunc or self._placeholderCallback - self.fatalErrorCallback = fatalErrorCallbackFunc or self._placeholderCallback - - self.com_args = args - self.com_kwargs = kwargs - - def connect(self): - """ Connects to the device and starts the read thread """ - self.serial = serial.Serial(dsrdtr=True, rtscts=True, port=self.port, baudrate=self.baudrate, - timeout=self.timeout, *self.com_args, **self.com_kwargs) - # Start read thread - self.alive = True - self.rxThread = threading.Thread(target=self._readLoop) - self.rxThread.daemon = True - self.rxThread.start() - - def close(self): - """ Stops the read thread, waits for it to exit cleanly, then closes the underlying serial port """ - self.alive = False - self.rxThread.join() - self.serial.close() - - def _handleLineRead(self, line, checkForResponseTerm=True): - # print 'sc.hlineread:',line - if self._responseEvent and not self._responseEvent.is_set(): - # A response event has been set up (another thread is waiting for this response) - self._response.append(line) - if not checkForResponseTerm or self.RESPONSE_TERM.match(line): - # End of response reached; notify waiting thread - # print 'response:', self._response - self.log.debug('response: %s', self._response) - self._responseEvent.set() - else: - # Nothing was waiting for this - treat it as a notification - self._notification.append(line) - if self.serial.inWaiting() == 0: - # No more chars on the way for this notification - notify higher-level callback - # print 'notification:', self._notification - self.log.debug('notification: %s', self._notification) - self.notifyCallback(self._notification) - self._notification = [] - - def _placeholderCallback(self, *args, **kwargs): - """ Placeholder callback function (does nothing) """ - - def _readLoop(self): - """ Read thread main loop - - Reads lines from the connected device - """ - try: - readTermSeq = bytearray(self.RX_EOL_SEQ) - readTermLen = len(readTermSeq) - rxBuffer = bytearray() - while self.alive: - data = self.serial.read(1) - if len(data) != 0: # check for timeout - # print >> sys.stderr, ' RX:', data,'({0})'.format(ord(data)) - rxBuffer.append(ord(data)) - if rxBuffer[-readTermLen:] == readTermSeq: - # A line (or other logical segment) has been read - line = rxBuffer[:-readTermLen].decode() - rxBuffer = bytearray() - if len(line) > 0: - # print 'calling handler' - self._handleLineRead(line) - elif self._expectResponseTermSeq: - if rxBuffer[-len(self._expectResponseTermSeq):] == self._expectResponseTermSeq: - line = rxBuffer.decode() - rxBuffer = bytearray() - self._handleLineRead(line, checkForResponseTerm=False) - # else: - # ' ' - except serial.SerialException as e: - self.alive = False - try: - self.serial.close() - except Exception: # pragma: no cover - pass - # Notify the fatal error handler - self.fatalErrorCallback(e) - - def write(self, data, waitForResponse=True, timeout=5, expectedResponseTermSeq=None): - data = data.encode() - with self._txLock: - if waitForResponse: - if expectedResponseTermSeq: - self._expectResponseTermSeq = bytearray(expectedResponseTermSeq.encode()) - self._response = [] - self._responseEvent = threading.Event() - self.serial.write(data) - if self._responseEvent.wait(timeout): - self._responseEvent = None - self._expectResponseTermSeq = False - return self._response - else: # Response timed out - self._responseEvent = None - self._expectResponseTermSeq = False - if len(self._response) > 0: - # Add the partial response to the timeout exception - raise TimeoutException(self._response) - else: - raise TimeoutException() - else: - self.serial.write(data) diff --git a/gsmmodem/util.py b/gsmmodem/util.py deleted file mode 100644 index a61ba8d..0000000 --- a/gsmmodem/util.py +++ /dev/null @@ -1,130 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -""" Some common utility classes used by tests """ - -from datetime import datetime, timedelta, tzinfo -import re - - -class SimpleOffsetTzInfo(tzinfo): - """ Very simple implementation of datetime.tzinfo offering set timezone offset for datetime instances """ - - def __init__(self, offsetInHours=None): - """ Constructs a new tzinfo instance using an amount of hours as an offset - - :param offsetInHours: The timezone offset, in hours (may be negative) - :type offsetInHours: int or float - """ - if offsetInHours != None: # pragma: no cover - self.offsetInHours = offsetInHours - - def utcoffset(self, dt): - return timedelta(hours=self.offsetInHours) - - def dst(self, dt): - return timedelta(0) - - def __repr__(self): - return 'gsmmodem.util.SimpleOffsetTzInfo({0})'.format(self.offsetInHours) - - -def parseTextModeTimeStr(timeStr): - """ Parses the specified SMS text mode time string - - The time stamp format is "yy/MM/dd,hh:mm:ss±zz" - (yy = year, MM = month, dd = day, hh = hour, mm = minute, ss = second, zz = time zone - [Note: the unit of time zone is a quarter of an hour]) - - :param timeStr: The time string to parse - :type timeStr: str - - :return: datetime object representing the specified time string - :rtype: datetime.datetime - """ - msgTime = timeStr[:-3] - tzOffsetHours = int(int(timeStr[-3:]) * 0.25) - return datetime.strptime(msgTime, '%y/%m/%d,%H:%M:%S').replace(tzinfo=SimpleOffsetTzInfo(tzOffsetHours)) - - -def lineStartingWith(string, lines): - """ Searches through the specified list of strings and returns the - first line starting with the specified search string, or None if not found - """ - for line in lines: - if line.startswith(string): - return line - else: - return None - - -def lineMatching(regexStr, lines): - """ Searches through the specified list of strings and returns the regular expression - match for the first line that matches the specified regex string, or None if no match was found - - Note: if you have a pre-compiled regex pattern, use lineMatchingPattern() instead - - :type regexStr: Regular expression string to use - :type lines: List of lines to search - - :return: the regular expression match for the first line that matches the specified regex, or None if no match was found - :rtype: re.Match - """ - regex = re.compile(regexStr) - for line in lines: - m = regex.match(line) - if m: - return m - else: - return None - - -def lineMatchingPattern(pattern, lines): - """ Searches through the specified list of strings and returns the regular expression - match for the first line that matches the specified pre-compiled regex pattern, or None if no match was found - - Note: if you are using a regex pattern string (i.e. not already compiled), use lineMatching() instead - - :type pattern: Compiled regular expression pattern to use - :type lines: List of lines to search - - :return: the regular expression match for the first line that matches the specified regex, or None if no match was found - :rtype: re.Match - """ - for line in lines: - m = pattern.match(line) - if m: - return m - else: - return None - - -def allLinesMatchingPattern(pattern, lines): - """ Like lineMatchingPattern, but returns all lines that match the specified pattern - - :type pattern: Compiled regular expression pattern to use - :type lines: List of lines to search - - :return: list of re.Match objects for each line matched, or an empty list if none matched - :rtype: list - """ - result = [] - for line in lines: - m = pattern.match(line) - if m: - result.append(m) - return result - - -def removeAtPrefix(string): - """ Remove AT prefix from a specified string. - - :param string: An original string - :type string: str - - :return: A string with AT prefix removed - :rtype: str - """ - if string.startswith('AT'): - return string[2:] - return string diff --git a/logs/AppLogging.py b/logs/AppLogging.py index a9f9f49..ac9be75 100644 --- a/logs/AppLogging.py +++ b/logs/AppLogging.py @@ -8,4 +8,4 @@ def init_logger(): filemode='a', format='%(asctime)s,%(msecs)d %(name)s %(levelname)s %(message)s', datefmt='%D:%H:%M:%S', - level=logging.INFO) + level=logging.DEBUG) diff --git a/modems/ModemPool.py b/modems/ModemPool.py index 54685a6..f921baf 100644 --- a/modems/ModemPool.py +++ b/modems/ModemPool.py @@ -2,6 +2,7 @@ import re import time import serial +from gsmmodem import GsmModem from serial import Serial from definitions import BAUDRATE @@ -9,7 +10,9 @@ from error.SIMError import SIMError from logs.LogSender import LOG_APPOINTMENT_SUCCESS, SUBJECT_SIM_INFO from params import firebase_store_manager, oracle_log_sender from pojo.SimInfoPojo import SimInfoPojo +from pojo.serial_modem import SerialModem from utils.excel_reader import ExcelHelper +from utils.operator import check_operator, Operator class ModemPool: @@ -43,42 +46,55 @@ class ModemPool: return msg def get_raw_phone_number(self, slot_position): + for index, ser in enumerate(self._serial_list): - print("will get phone number for slot({}) SIM({}), port:{}".format(slot_position, index + 1, ser.port)) - if not self._select_sim_storage(ser): - print(self._generate_error_msg(slot_position, index, SIMError.STORAGE_ERROR)) - continue - msg = self._execut_USSD_cmd("AT+CUSD=1, *132#\r", ser) - if "Unfortunately" in str(msg): - print(self._generate_error_msg(slot_position, index, SIMError.SIM_DISABLED)) - continue - elif "CME ERROR" in str(msg): - print(self._generate_error_msg(slot_position, index, SIMError.CME_ERROR)) - continue - elif len(msg) == 0: - print(self._generate_error_msg(slot_position, index, SIMError.TIMEOUT)) - continue - # find phone number - match = re.search(r'33\d{9}', str(msg)) - phone_number = match.group(0) - print("phone is " + phone_number) + sim_position = index + 1 + position = (slot_position - 1) * len(self._port_list) + sim_position + # unlock sim + unlock_cmd = 'AT+CPIN="{0}\r"'.format("0000") + self._send_command(unlock_cmd, ser, 10) cmd = "AT+CCID\r" response = str(self._send_command(cmd, ser)) ccid_group = re.search("[0-9F]+", response) ccid = ccid_group.group(0) - sim_position = index + 1 - position = (slot_position - 1) * len(self._port_list) + sim_position - if phone_number: - self._db_manager.save_sim_info(SimInfoPojo(phone=phone_number, ccid=ccid, position=position)) - self._log_sender.send_log(phone_number, source=self.TAG, subject=SUBJECT_SIM_INFO, - type=LOG_APPOINTMENT_SUCCESS) - # write the number to sim card's phonebook - cmd = f'AT+CPBW={self.phone_number_position},\"{phone_number}\"\r' - self._send_command(cmd, ser, wait_time_in_s=2) - self.get_own_number(ser) + operator = check_operator(ccid) + if operator == Operator.SFR or operator == Operator.CHINA_TELECOM: + contacts = self._excel_helper.read_contacts() + contact = [contact for contact in contacts if + contact.ccid.replace("F", "") == ccid.replace("F", "")] + if len(contact) > 0: + phone_number = contact[0].phone + self._db_manager.save_sim_info(SimInfoPojo(phone=str(phone_number), ccid=ccid, position=position)) + else: + error_msg = "slot({}),sim({})".format(slot_position, sim_position) + oracle_log_sender.send_contact_not_found(error_msg) + else: + print("will get phone number for slot({}) SIM({}), port:{}".format(slot_position, index + 1, ser.port)) + if not self._select_sim_storage(ser): + print(self._generate_error_msg(slot_position, index, SIMError.STORAGE_ERROR)) + continue + msg = self._execut_USSD_cmd("AT+CUSD=1, *132#\r", ser) + if "Unfortunately" in str(msg): + print(self._generate_error_msg(slot_position, index, SIMError.SIM_DISABLED)) + continue + elif "CME ERROR" in str(msg): + print(self._generate_error_msg(slot_position, index, SIMError.CME_ERROR)) + continue + elif len(msg) == 0: + print(self._generate_error_msg(slot_position, index, SIMError.TIMEOUT)) + continue + # find phone number + match = re.search(r'33\d{9}', str(msg)) + phone_number = match.group(0) + print("phone is " + phone_number) - def get_own_number(self, ser: Serial): - print("saved phone number: " + str(self._send_command(f'AT+CPBR={self.phone_number_position}\r', ser))) + if phone_number: + self._db_manager.save_sim_info(SimInfoPojo(phone=phone_number, ccid=ccid, position=position)) + self._log_sender.send_log(phone_number, source=self.TAG, subject=SUBJECT_SIM_INFO, + type=LOG_APPOINTMENT_SUCCESS) + # write the number to sim card's phonebook + cmd = f'AT+CPBW={self.phone_number_position},\"{phone_number}\"\r' + self._send_command(cmd, ser, wait_time_in_s=2) def _select_sim_storage(self, ser) -> bool: # use SIM Card storage diff --git a/reset_all_sim_card.py b/reset_all_sim_card.py index 104f616..64be10d 100644 --- a/reset_all_sim_card.py +++ b/reset_all_sim_card.py @@ -1,15 +1,17 @@ import logging +import sys import params from modems.ModemPool import ModemPool from logs.AppLogging import init_logger from logs.LogSender import LOG_SUBJECT_EVENT, TYPE_EVENT_RESET_ALL_SIM_CARDS from main import card_pool, get_devices_ports +from wait_for_sms import start_waiting_sms def read_all_the_phone_number(): params.oracle_log_sender.send_log(msg="SIM卡自检开始", subject=LOG_SUBJECT_EVENT, type=TYPE_EVENT_RESET_ALL_SIM_CARDS) - slot_number = 16 + slot_number = 1 slot_sum = 27 params.firebase_store_manager.clear_all_sim_info() for i in range(slot_number, slot_sum + 1): @@ -24,4 +26,5 @@ def read_all_the_phone_number(): if __name__ == '__main__': init_logger() logger = logging.getLogger() + logger.addHandler(logging.StreamHandler(stream=sys.stdout)) read_all_the_phone_number() diff --git a/wait_for_sms.py b/wait_for_sms.py index 512aeef..58d494a 100644 --- a/wait_for_sms.py +++ b/wait_for_sms.py @@ -20,9 +20,6 @@ commandor = CommandorPage() thread_event = None current_gsm_modem = None card_pool = CardPool(CARD_POOL_PORT) -# used to save the current slot position -current_card_pool_slot = 1 -current_sim_position = 1 def get_devices_ports() -> list: @@ -49,9 +46,13 @@ def timeout_occurred(serial_modem: SerialModem): def start_to_handle_sms(serial_modem: SerialModem): global current_gsm_modem current_gsm_modem = serial_modem.modem - if check_operator(serial_modem.ccid) == Operator.LYCAMOBILE: + # if check_operator(serial_modem.ccid) == Operator.LYCAMOBILE: # lycamobile + try: current_gsm_modem.deleteMultipleStoredSms(memory="SM") + except Exception as error: + print(error) + serial_modem.modem.smsReceivedCallback = handle_sms serial_modem.modem.smsTextMode = False logger.info('Waiting for SMS message, for phone number ' + str(serial_modem.phone_number)) @@ -84,9 +85,10 @@ def init_modems() -> list: return modems -def start_book(): - slot_number = 2 - slot_sum = 2 +def start_waiting_sms(): + # logger = logging.getLogger() + slot_number = 1 + slot_sum = 28 for i in range(slot_number, slot_sum + 1): card_pool.reset() logger.info("will switch to " + str(i)) @@ -97,10 +99,7 @@ def start_book(): # read the contact, and merge the 2 objects together excel_reader = ExcelHelper() contacts = excel_reader.read_contacts() - global current_sim_position - current_sim_position = 1 for modem in modem_list: - current_sim_position = current_sim_position + 1 try: # get contact for current modem modem.get_ccid() @@ -119,4 +118,4 @@ if __name__ == '__main__': init_logger() logger = logging.getLogger() logger.addHandler(logging.StreamHandler(stream=sys.stdout)) - start_book() + start_waiting_sms() From 439aa45487ffcbf4fc71ea24e0548571f686754c Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Thu, 24 Mar 2022 23:28:35 +0100 Subject: [PATCH 24/43] correction on the contacts --- contact.xlsx | Bin 48612 -> 48513 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/contact.xlsx b/contact.xlsx index 04e9129d0591069cdc7587d42f32eaf2b922ff88..b38aca2eeb7cc8dcdf88d5f5737a55e0459ebd8e 100644 GIT binary patch delta 40845 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 From 732e3cb3101f37bbd83d6ce8f0eda6a4fb0aedc8 Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Thu, 24 Mar 2022 23:56:29 +0100 Subject: [PATCH 25/43] selet faubourg store --- commandor_page.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/commandor_page.py b/commandor_page.py index 0090d82..fa7759e 100644 --- a/commandor_page.py +++ b/commandor_page.py @@ -6,12 +6,10 @@ import time from playwright.sync_api import sync_playwright -import params from params import PROXY_SERVER, PROXY_PASSWORD from pojo.ReserveResultPojo import ReserveResultPojo, PublishType from pojo.contact_pojo import ContactPojo from utils.excel_reader import ExcelHelper -from utils.message_receiver import APPOINTMENT_QUEUE RDV_URL = "https://rendezvousparis.hermes.com/client/register" @@ -43,7 +41,7 @@ class CommandorPage: # self.browser = pwright.firefox.launch(headless=False, timeout=90000, proxy=proxy) # else: self.start_brower(proxy, pwright, user_agent) - self._setPhoneCountry() + self._setPhoneCountryAndStore() self._setPhoneNumber(contact.phone) self._setName(contact.last_name, contact.first_name) self._set_email(contact.mail) @@ -102,8 +100,10 @@ class CommandorPage: def on_document_loaded(self): print("on_document_loaded called") - def _setPhoneCountry(self): - self.page.evaluate("""()=>document.getElementById("phone_country").value = \"FR\" """) + def _setPhoneCountryAndStore(self): + self.page.evaluate("""()=>{ + document.getElementById("prefer").value = \"faubourg\"; + document.getElementById("phone_country").value = \"FR\" }""") def _setPhoneNumber(self, phoneNumber): self.page.evaluate("""(phoneNumber)=>document.getElementById("phone_number").value =phoneNumber""", @@ -168,6 +168,10 @@ def get_random_id_number() -> str: return id_number +def on_success(result: ReserveResultPojo): + pass + + def launch_page(ready_for_otp) -> threading.Event: PROXY_USERNAME = "panleicim-cc-fr-sid-" + get_random_id_number_for_proxy() print("proxy_username is " + PROXY_USERNAME) @@ -182,7 +186,7 @@ def launch_page(ready_for_otp) -> threading.Event: first_name="xingzhen", mail="ColbyPatel653@gmail.com", ccid="", position=0) page = CommandorPage() - return page.start_page(proxy, contact, ready_for_otp) + return page.start_page(proxy, contact, ready_for_otp, on_sucess=on_success) def wait_for_otp(event: threading.Event, commandor: CommandorPage): From 99dd077bb2cca9ff1b4710fa8eae28e2aba52055 Mon Sep 17 00:00:00 2001 From: Lei PAN Date: Fri, 25 Mar 2022 09:16:27 +0100 Subject: [PATCH 26/43] add operator to siminfo --- modems/ModemPool.py | 6 ++++-- pojo/SimInfoPojo.py | 11 ++++++++--- reset_all_sim_card.py | 3 +-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/modems/ModemPool.py b/modems/ModemPool.py index f921baf..02e5b5a 100644 --- a/modems/ModemPool.py +++ b/modems/ModemPool.py @@ -64,7 +64,8 @@ class ModemPool: contact.ccid.replace("F", "") == ccid.replace("F", "")] if len(contact) > 0: phone_number = contact[0].phone - self._db_manager.save_sim_info(SimInfoPojo(phone=str(phone_number), ccid=ccid, position=position)) + self._db_manager.save_sim_info( + SimInfoPojo(phone=str(phone_number), ccid=ccid, position=position, operator=operator.value)) else: error_msg = "slot({}),sim({})".format(slot_position, sim_position) oracle_log_sender.send_contact_not_found(error_msg) @@ -89,7 +90,8 @@ class ModemPool: print("phone is " + phone_number) if phone_number: - self._db_manager.save_sim_info(SimInfoPojo(phone=phone_number, ccid=ccid, position=position)) + self._db_manager.save_sim_info( + SimInfoPojo(phone=phone_number, ccid=ccid, position=position, operator=operator.value)) self._log_sender.send_log(phone_number, source=self.TAG, subject=SUBJECT_SIM_INFO, type=LOG_APPOINTMENT_SUCCESS) # write the number to sim card's phonebook diff --git a/pojo/SimInfoPojo.py b/pojo/SimInfoPojo.py index 075ac0d..67766df 100644 --- a/pojo/SimInfoPojo.py +++ b/pojo/SimInfoPojo.py @@ -1,4 +1,3 @@ -import datetime import time @@ -7,12 +6,14 @@ class SimInfoPojo: ccid: str update_at: int position: int + operator: str - def __init__(self, phone: str, ccid: str, position, update_at: int = int(time.time())): + def __init__(self, phone: str, ccid: str, position, operator: str, update_at: int = int(time.time())): self.phone = phone self.ccid = ccid self.update_at = update_at self.position = position + self.operator = operator @staticmethod def from_firestore_dict(source): @@ -24,7 +25,10 @@ class SimInfoPojo: position = None if 'position' in source: position = source['position'] - result = SimInfoPojo(phone=phone, ccid=ccid, update_at=update_at, position=position) + result = SimInfoPojo(phone=phone, ccid=ccid, update_at=update_at, position=position, operator="") + if 'operator' in source: + operator = source['operator'] + result.operator = operator result.id = id return result @@ -34,6 +38,7 @@ class SimInfoPojo: u'ccid': self.ccid, u'update_at': self.update_at, u'position': self.position, + u'operator': self.operator, } return dest diff --git a/reset_all_sim_card.py b/reset_all_sim_card.py index 64be10d..7430cab 100644 --- a/reset_all_sim_card.py +++ b/reset_all_sim_card.py @@ -6,13 +6,12 @@ from modems.ModemPool import ModemPool from logs.AppLogging import init_logger from logs.LogSender import LOG_SUBJECT_EVENT, TYPE_EVENT_RESET_ALL_SIM_CARDS from main import card_pool, get_devices_ports -from wait_for_sms import start_waiting_sms def read_all_the_phone_number(): params.oracle_log_sender.send_log(msg="SIM卡自检开始", subject=LOG_SUBJECT_EVENT, type=TYPE_EVENT_RESET_ALL_SIM_CARDS) slot_number = 1 - slot_sum = 27 + slot_sum = 26 params.firebase_store_manager.clear_all_sim_info() for i in range(slot_number, slot_sum + 1): card_pool.reset() From 3cae7159aa4b237a9e1b54e6e841991db64b9e09 Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Fri, 25 Mar 2022 10:00:25 +0100 Subject: [PATCH 27/43] update contact --- contact.xlsx | Bin 48513 -> 51256 bytes db/.~sim_infos.xlsx | Bin 0 -> 165 bytes db/DbManager.py | 9 +++++++-- 3 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 db/.~sim_infos.xlsx diff --git a/contact.xlsx b/contact.xlsx index b38aca2eeb7cc8dcdf88d5f5737a55e0459ebd8e..0fa971443f8bc6f7ec9c6badff8a861dc5a09c1d 100644 GIT binary patch literal 51256 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