text:
"""
This module provides code to work with the prosite dat file from
Prosite.
http://www.expasy.ch/prosite/

Tested with:
Release 15.0, July 1998
Release 16.0, July 1999
Release 17.0, Dec 2001
Release 19.0, Mar 2006

Classes:
Record                Holds Prosite data.
PatternHit            Holds data from a hit against a Prosite pattern.
Iterator              Iterates over entries in a Prosite file.
Dictionary            Accesses a Prosite file using a dictionary interface.
RecordParser          Parses a Prosite record into a Record object.

_Scanner              Scans Prosite-formatted data.
_RecordConsumer       Consumes Prosite data to a Record object.

Functions:
scan_sequence_expasy  Scan a sequence for occurrences of Prosite patterns.
index_file            Index a Prosite file for a Dictionary.
_extract_record       Extract Prosite data from a web page.
_extract_pattern_hits Extract Prosite patterns from a web page.

"""
from types import *
import re
import sgmllib
from Bio import File
from Bio import Index
from Bio.ParserSupport import *

# There is probably a cleaner way to write the read/parse functions
# if we don't use the "parser = RecordParser(); parser.parse(handle)"
# approach. Leaving that for the next revision of Bio.Prosite.
def parse(handle):
    import cStringIO
    parser = RecordParser()
    text = ""
    for line in handle:
        text += line
        if line[:2]=='//':
            handle = cStringIO.StringIO(text)
            record = parser.parse(handle)
            text = ""
            if not record: # Then this was the copyright notice
                continue
            yield record

def read(handle):
    parser = RecordParser()
    try:
        record = parser.parse(handle)
    except ValueError, error:
        if error.message=="There doesn't appear to be a record":
            raise ValueError, "No Prosite record found"
        else:
            raise error
    # We should have reached the end of the record by now
    remainder = handle.read()
    if remainder:
        raise ValueError, "More than one Prosite record found"
    return record

class Record:
    """Holds information from a Prosite record.

    Members:
    name           ID of the record.  e.g. ADH_ZINC
    type           Type of entry.  e.g. PATTERN, MATRIX, or RULE
    accession      e.g. PS00387
    created        Date the entry was created.  (MMM-YYYY)
    data_update    Date the 'primary' data was last updated.
    info_update    Date data other than 'primary' data was last updated.
    pdoc           ID of the PROSITE DOCumentation.

    description    Free-format description.
    pattern        The PROSITE pattern.  See docs.
    matrix         List of strings that describes a matrix entry.
    rules          List of rule definitions (from RU lines).  (strings)
    prorules       List of prorules (from PR lines). (strings)

    NUMERICAL RESULTS
    nr_sp_release  SwissProt release.
    nr_sp_seqs     Number of seqs in that release of Swiss-Prot. (int)
    nr_total       Number of hits in Swiss-Prot.  tuple of (hits, seqs)
    nr_positive    True positives.  tuple of (hits, seqs)
    nr_unknown     Could be positives.  tuple of (hits, seqs)
    nr_false_pos   False positives.  tuple of (hits, seqs)
    nr_false_neg   False negatives.  (int)
    nr_partial     False negatives, because they are fragments. (int)

    COMMENTS
    cc_taxo_range  Taxonomic range.  See docs for format
    cc_max_repeat  Maximum number of repetitions in a protein
    cc_site        Interesting site.  list of tuples (pattern pos, desc.)
    cc_skip_flag   Can this entry be ignored?
    cc_matrix_type
    cc_scaling_db
    cc_author
    cc_ft_key
    cc_ft_desc
    cc_version     version number (introduced in release 19.0)

    DATA BANK REFERENCES - The following are all
                           lists of tuples (swiss-prot accession,
                                            swiss-prot name)
    dr_positive
    dr_false_neg
    dr_false_pos
    dr_potential   Potential hits, but fingerprint region not yet available.
    dr_unknown     Could possibly belong

    pdb_structs    List of PDB entries.

    """
    def __init__(self):
        self.name = ''
        self.type = ''
        self.accession = ''
        self.created = ''
        self.data_update = ''
        self.info_update = ''
        self.pdoc = ''

        self.description = ''
        self.pattern = ''
        self.matrix = []
        self.rules = []
        self.prorules = []
        self.postprocessing = []

        self.nr_sp_release = ''
        self.nr_sp_seqs = ''
        self.nr_total = (None, None)
        self.nr_positive = (None, None)
        self.nr_unknown = (None, None)
        self.nr_false_pos = (None, None)
        self.nr_false_neg = None
        self.nr_partial = None

        self.cc_taxo_range = ''
        self.cc_max_repeat = ''
        self.cc_site = []
        self.cc_skip_flag = ''

        self.dr_positive = []
        self.dr_false_neg = []
        self.dr_false_pos = []
        self.dr_potential = []
        self.dr_unknown = []

        self.pdb_structs = []

class PatternHit:
    """Holds information from a hit against a Prosite pattern.

    Members:
    name           ID of the record.  e.g. ADH_ZINC
    accession      e.g. PS00387
    pdoc           ID of the PROSITE DOCumentation.
    description    Free-format description.
    matches        List of tuples (start, end, sequence) where
                   start and end are indexes of the match, and sequence is
                   the sequence matched.

    """
    def __init__(self):
        self.name = None
        self.accession = None
        self.pdoc = None
        self.description = None
        self.matches = []
    def __str__(self):
        lines = []
        lines.append("%s %s %s" % (self.accession, self.pdoc, self.name))
        lines.append(self.description)
        lines.append('')
        if len(self.matches) > 1:
            lines.append("Number of matches: %s" % len(self.matches))
        for i in range(len(self.matches)):
            start, end, seq = self.matches[i]
            range_str = "%d-%d" % (start, end)
            if len(self.matches) > 1:
                lines.append("%7d %10s %s" % (i+1, range_str, seq))
            else:
                lines.append("%7s %10s %s" % (' ', range_str, seq))
        return "\n".join(lines)

class Iterator:
    """Returns one record at a time from a Prosite file.

    Methods:
    next   Return the next record from the stream, or None.

    """
    def __init__(self, handle, parser=None):
        """__init__(self, handle, parser=None)

        Create a new iterator.  handle is a file-like object.  parser
        is an optional Parser object to change the results into another form.
        If set to None, then the raw contents of the file will be returned.

        """
        if type(handle) is not FileType and type(handle) is not InstanceType:
            raise ValueError, "I expected a file handle or file-like object"
        self._uhandle = File.UndoHandle(handle)
        self._parser = parser

    def next(self):
        """next(self) -> object

        Return the next Prosite record from the file.  If no more records,
        return None.

        """
        # Skip the copyright info, if it's the first record.
        line = self._uhandle.peekline()
        if line[:2] == 'CC':
            while 1:
                line = self._uhandle.readline()
                if not line:
                    break
                if line[:2] == '//':
                    break
                if line[:2] != 'CC':
                    raise ValueError, \
                          "Oops, where's the copyright?"

        lines = []
        while 1:
            line = self._uhandle.readline()
            if not line:
                break
            lines.append(line)
            if line[:2] == '//':
                break

        if not lines:
            return None

        data = "".join(lines)
        if self._parser is not None:
            return self._parser.parse(File.StringHandle(data))
        return data

    def __iter__(self):
        return iter(self.next, None)

class Dictionary:
    """Accesses a Prosite file using a dictionary interface.

    """
    __filename_key = '__filename'

    def __init__(self, indexname, parser=None):
        """__init__(self, indexname, parser=None)

        Open a Prosite Dictionary.  indexname is the name of the
        index for the dictionary.  The index should have been created
        using the index_file function.  parser is an optional Parser
        object to change the results into another form.  If set to None,
        then the raw contents of the file will be returned.

        """
        self._index = Index.Index(indexname)
        self._handle = open(self._index[Dictionary.__filename_key])
        self._parser = parser

    def __len__(self):
        return len(self._index)

    def __getitem__(self, key):
        start, len = self._index[key]
        self._handle.seek(start)
        data = self._handle.read(len)
        if self._parser is not None:
            return self._parser.parse(File.StringHandle(data))
        return data

    def __getattr__(self, name):
        return getattr(self._index, name)

class ExPASyDictionary:
    """Access PROSITE at ExPASy using a read-only dictionary interface.

    """
    def __init__(self, delay=5.0, parser=None):
        """__init__(self, delay=5.0, parser=None)

        Create a new Dictionary to access PROSITE.  parser is an optional
        parser (e.g. Prosite.RecordParser) object to change the results
        into another form.  If set to None, then the raw contents of the
        file will be returned.  delay is the number of seconds to wait
        between each query.

        """
        import warnings
        from Bio.WWW import RequestLimiter
        warnings.warn("Bio.Prosite.ExPASyDictionary is deprecated. Please use the function Bio.ExPASy.get_prosite_raw instead.",
              DeprecationWarning)
        self.parser = parser
        self.limiter = RequestLimiter(delay)

    def __len__(self):
        raise NotImplementedError, "Prosite contains lots of entries"
    def clear(self):
        raise NotImplementedError, "This is a read-only dictionary"
    def __setitem__(self, key, item):
        raise NotImplementedError, "This is a read-only dictionary"
    def update(self):
        raise NotImplementedError, "This is a read-only dictionary"
    def copy(self):
        raise NotImplementedError, "You don't need to do this..."
    def keys(self):
        raise NotImplementedError, "You don't really want to do this..."
    def items(self):
        raise NotImplementedError, "You don't really want to do this..."
    def values(self):
        raise NotImplementedError, "You don't really want to do this..."

    def has_key(self, id):
        """has_key(self, id) -> bool"""
        try:
            self[id]
        except KeyError:
            return 0
        return 1

    def get(self, id, failobj=None):
        try:
            return self[id]
        except KeyError:
            return failobj
        raise "How did I get here?"

    def __getitem__(self, id):
        """__getitem__(self, id) -> object

        Return a Prosite entry.  id is either the id or accession
        for the entry.  Raises a KeyError if there's an error.

        """
        from Bio.WWW import ExPASy
        # First, check to see if enough time has passed since my
        # last query.
        self.limiter.wait()

        try:
            handle = ExPASy.get_prosite_entry(id)
        except IOError:
            raise KeyError, id
        try:
            handle = File.StringHandle(_extract_record(handle))
        except ValueError:
            raise KeyError, id

        if self.parser is not None:
            return self.parser.parse(handle)
        return handle.read()

class RecordParser(AbstractParser):
    """Parses Prosite data into a Record object.

    """
    def __init__(self):
        self._scanner = _Scanner()
        self._consumer = _RecordConsumer()

    def parse(self, handle):
        self._scanner.feed(handle, self._consumer)
        return self._consumer.data

class _Scanner:
    """Scans Prosite-formatted data.

    Tested with:
    Release 15.0, July 1998

    """
    def feed(self, handle, consumer):
        """feed(self, handle, consumer)

        Feed in Prosite data for scanning.  handle is a file-like
        object that contains prosite data.  consumer is a
        Consumer object that will receive events as the report is scanned.

        """
        if isinstance(handle, File.UndoHandle):
            uhandle = handle
        else:
            uhandle = File.UndoHandle(handle)

        consumer.finished = False
        while not consumer.finished:
            line = uhandle.peekline()
            if not line:
                break
            elif is_blank_line(line):
                # Skip blank lines between records
                uhandle.readline()
                continue
            elif line[:2] == 'ID':
                self._scan_record(uhandle, consumer)
            elif line[:2] == 'CC':
                self._scan_copyrights(uhandle, consumer)
            else:
                raise ValueError, "There doesn't appear to be a record"

    def _scan_copyrights(self, uhandle, consumer):
        consumer.start_copyrights()
        self._scan_line('CC', uhandle, consumer.copyright, any_number=1)
        self._scan_terminator(uhandle, consumer)
        consumer.end_copyrights()

    def _scan_record(self, uhandle, consumer):
        consumer.start_record()
        for fn in self._scan_fns:
            fn(self, uhandle, consumer)

            # In Release 15.0, C_TYPE_LECTIN_1 has the DO line before
            # the 3D lines, instead of the other way around.
            # Thus, I'll give the 3D lines another chance after the DO lines
            # are finished.
            if fn is self._scan_do.im_func:
                self._scan_3d(uhandle, consumer)
        consumer.end_record()

    def _scan_line(self, line_type, uhandle, event_fn,
                   exactly_one=None, one_or_more=None, any_number=None,
                   up_to_one=None):
        # Callers must set exactly one of exactly_one, one_or_more, or
        # any_number to a true value.  I do not explicitly check to
        # make sure this function is called correctly.

        # This does not guarantee any parameter safety, but I
        # like the readability.  The other strategy I tried was have
        # parameters min_lines, max_lines.

        if exactly_one or one_or_more:
            read_and_call(uhandle, event_fn, start=line_type)
        if one_or_more or any_number:
            while 1:
                if not attempt_read_and_call(uhandle, event_fn,
                                             start=line_type):
                    break
        if up_to_one:
            attempt_read_and_call(uhandle, event_fn, start=line_type)

    def _scan_id(self, uhandle, consumer):
        self._scan_line('ID', uhandle, consumer.identification, exactly_one=1)

    def _scan_ac(self, uhandle, consumer):
        self._scan_line('AC', uhandle, consumer.accession, exactly_one=1)

    def _scan_dt(self, uhandle, consumer):
        self._scan_line('DT', uhandle, consumer.date, exactly_one=1)

    def _scan_de(self, uhandle, consumer):
        self._scan_line('DE', uhandle, consumer.description, exactly_one=1)

    def _scan_pa(self, uhandle, consumer):
        self._scan_line('PA', uhandle, consumer.pattern, any_number=1)

    def _scan_ma(self, uhandle, consumer):
        self._scan_line('MA', uhandle, consumer.matrix, any_number=1)
##        # ZN2_CY6_FUNGAL_2, DNAJ_2 in Release 15
##        # contain a CC line buried within an 'MA' line.  Need to check
##        # for that.
##        while 1:
##            if not attempt_read_and_call(uhandle, consumer.matrix, start='MA'):
##                line1 = uhandle.readline()
##                line2 = uhandle.readline()
##                uhandle.saveline(line2)
##                uhandle.saveline(line1)
##                if line1[:2] == 'CC' and line2[:2] == 'MA':
##                    read_and_call(uhandle, consumer.comment, start='CC')
##                else:
##                    break

    def _scan_pp(self, uhandle, consumer):
        #New PP line, PostProcessing, just after the MA line
        self._scan_line('PP', uhandle, consumer.postprocessing, any_number=1)

    def _scan_ru(self, uhandle, consumer):
        self._scan_line('RU', uhandle, consumer.rule, any_number=1)

    def _scan_nr(self, uhandle, consumer):
        self._scan_line('NR', uhandle, consumer.numerical_results,
                        any_number=1)

    def _scan_cc(self, uhandle, consumer):
        self._scan_line('CC', uhandle, consumer.comment, any_number=1)

    def _scan_dr(self, uhandle, consumer):
        self._scan_line('DR', uhandle, consumer.database_reference,
                        any_number=1)

    def _scan_3d(self, uhandle, consumer):
        self._scan_line('3D', uhandle, consumer.pdb_reference,
                        any_number=1)

    def _scan_pr(self, uhandle, consumer):
        #New PR line, ProRule, between 3D and DO lines
        self._scan_line('PR', uhandle, consumer.prorule, any_number=1)

    def _scan_do(self, uhandle, consumer):
        self._scan_line('DO', uhandle, consumer.documentation, exactly_one=1)

    def _scan_terminator(self, uhandle, consumer):
        self._scan_line('//', uhandle, consumer.terminator, exactly_one=1)

    #This is a list of scan functions in the order expected in the file file.
    #The function definitions define how many times each line type is exected
    #(or if optional):
    _scan_fns = [
        _scan_id,
        _scan_ac,
        _scan_dt,
        _scan_de,
        _scan_pa,
        _scan_ma,
        _scan_pp,
        _scan_ru,
        _scan_nr,
        _scan_cc,

        # This is a really dirty hack, and should be fixed properly at
        # some point.  ZN2_CY6_FUNGAL_2, DNAJ_2 in Rel 15 and PS50309
        # in Rel 17 have lines out of order.  Thus, I have to rescan
        # these, which decreases performance.
        _scan_ma,
        _scan_nr,
        _scan_cc,

        _scan_dr,
        _scan_3d,
        _scan_pr,
        _scan_do,
        _scan_terminator
        ]

class _RecordConsumer(AbstractConsumer):
    """Consumer that converts a Prosite record to a Record object.

    Members:
    data    Record with Prosite data.

    """
    def __init__(self):
        self.data = None

    def start_record(self):
        self.data = Record()

    def end_record(self):
        self._clean_record(self.data)

    def identification(self, line):
        cols = line.split()
        if len(cols) != 3:
            raise ValueError, "I don't understand identification line\n%s" % \
                  line
        self.data.name = self._chomp(cols[1])    # don't want ';'
        self.data.type = self._chomp(cols[2])    # don't want '.'

    def accession(self, line):
        cols = line.split()
        if len(cols) != 2:
            raise ValueError, "I don't understand accession line\n%s" % line
        self.data.accession = self._chomp(cols[1])

    def date(self, line):
        uprline = line.upper()
        cols = uprline.split()

        # Release 15.0 contains both 'INFO UPDATE' and 'INF UPDATE'
        if cols[2] != '(CREATED);' or \
           cols[4] != '(DATA' or cols[5] != 'UPDATE);' or \
           cols[7][:4] != '(INF' or cols[8] != 'UPDATE).':
            raise ValueError, "I don't understand date line\n%s" % line

        self.data.created = cols[1]
        self.data.data_update = cols[3]
        self.data.info_update = cols[6]

    def description(self, line):
        self.data.description = self._clean(line)

    def pattern(self, line):
        self.data.pattern = self.data.pattern + self._clean(line)

    def matrix(self, line):
        self.data.matrix.append(self._clean(line))

    def postprocessing(self, line):
        postprocessing = self._clean(line).split(";")
        self.data.postprocessing.extend(postprocessing)

    def rule(self, line):
        self.data.rules.append(self._clean(line))

    def numerical_results(self, line):
        cols = self._clean(line).split(";")
        for col in cols:
            if not col:
                continue
            qual, data = [word.lstrip() for word in col.split("=")]
            if qual == '/RELEASE':
                release, seqs = data.split(",")
                self.data.nr_sp_release = release
                self.data.nr_sp_seqs = int(seqs)
            elif qual == '/FALSE_NEG':
                self.data.nr_false_neg = int(data)
            elif qual == '/PARTIAL':
                self.data.nr_partial = int(data)
            elif qual in ['/TOTAL', '/POSITIVE', '/UNKNOWN', '/FALSE_POS']:
                m = re.match(r'(\d+)\((\d+)\)', data)
                if not m:
                    raise error, "Broken data %s in comment line\n%s" % \
                          (repr(data), line)
                hits = tuple(map(int, m.groups()))
                if(qual == "/TOTAL"):
                    self.data.nr_total = hits
                elif(qual == "/POSITIVE"):
                    self.data.nr_positive = hits
                elif(qual == "/UNKNOWN"):
                    self.data.nr_unknown = hits
                elif(qual == "/FALSE_POS"):
                    self.data.nr_false_pos = hits
            else:
                raise ValueError, "Unknown qual %s in comment line\n%s" % \
                      (repr(qual), line)

    def comment(self, line):
        #Expect CC lines like this:
        #CC   /TAXO-RANGE=??EPV; /MAX-REPEAT=2;
        #Can (normally) split on ";" and then on "="
        cols = self._clean(line).split(";")
        for col in cols:
            if not col or col[:17] == 'Automatic scaling':
                # DNAJ_2 in Release 15 has a non-standard comment line:
                # CC   Automatic scaling using reversed database
                # Throw it away.  (Should I keep it?)
                continue
            if col.count("=") == 0 :
                #Missing qualifier!  Can we recover gracefully?
                #For example, from Bug 2403, in PS50293 have:
                #CC /AUTHOR=K_Hofmann; N_Hulo
                continue
            qual, data = [word.lstrip() for word in col.split("=")]
            if qual == '/TAXO-RANGE':
                self.data.cc_taxo_range = data
            elif qual == '/MAX-REPEAT':
                self.data.cc_max_repeat = data
            elif qual == '/SITE':
                pos, desc = data.split(",")
                self.data.cc_site.append((int(pos), desc))
            elif qual == '/SKIP-FLAG':
                self.data.cc_skip_flag = data
            elif qual == '/MATRIX_TYPE':
                self.data.cc_matrix_type = data
            elif qual == '/SCALING_DB':
                self.data.cc_scaling_db = data
            elif qual == '/AUTHOR':
                self.data.cc_author = data
            elif qual == '/FT_KEY':
                self.data.cc_ft_key = data
            elif qual == '/FT_DESC':
                self.data.cc_ft_desc = data
            elif qual == '/VERSION':
                self.data.cc_version = data
            else:
                raise ValueError, "Unknown qual %s in comment line\n%s" % \
                      (repr(qual), line)

    def database_reference(self, line):
        refs = self._clean(line).split(";")
        for ref in refs:
            if not ref:
                continue
            acc, name, type = [word.strip() for word in ref.split(",")]
            if type == 'T':
                self.data.dr_positive.append((acc, name))
            elif type == 'F':
                self.data.dr_false_pos.append((acc, name))
            elif type == 'N':
                self.data.dr_false_neg.append((acc, name))
            elif type == 'P':
                self.data.dr_potential.append((acc, name))
            elif type == '?':
                self.data.dr_unknown.append((acc, name))
            else:
                raise ValueError, "I don't understand type flag %s" % type

    def pdb_reference(self, line):
        cols = line.split()
        for id in cols[1:]:  # get all but the '3D' col
            self.data.pdb_structs.append(self._chomp(id))

    def prorule(self, line):
        #Assume that each PR line can contain multiple ";" separated rules
        rules = self._clean(line).split(";")
        self.data.prorules.extend(rules)

    def documentation(self, line):
        self.data.pdoc = self._chomp(self._clean(line))

    def terminator(self, line):
        self.finished = True

    def _chomp(self, word, to_chomp='.,;'):
        # Remove the punctuation at the end of a word.
        if word[-1] in to_chomp:
            return word[:-1]
        return word

    def _clean(self, line, rstrip=1):
        # Clean up a line.
        if rstrip:
            return line[5:].rstrip()
        return line[5:]

def scan_sequence_expasy(seq=None, id=None, exclude_frequent=None):
    """scan_sequence_expasy(seq=None, id=None, exclude_frequent=None) ->
    list of PatternHit's

    Search a sequence for occurrences of Prosite patterns.  You can
    specify either a sequence in seq or a SwissProt/trEMBL ID or accession
    in id.  Only one of those should be given.  If exclude_frequent
    is true, then the patterns with the high probability of occurring
    will be excluded.

    """
    from Bio import ExPASy
    if (seq and id) or not (seq or id):
        raise ValueError, "Please specify either a sequence or an id"
    handle = ExPASy.scanprosite1(seq, id, exclude_frequent)
    return _extract_pattern_hits(handle)

def _extract_pattern_hits(handle):
    """_extract_pattern_hits(handle) -> list of PatternHit's

    Extract hits from a web page.  Raises a ValueError if there
    was an error in the query.

    """
    class parser(sgmllib.SGMLParser):
        def __init__(self):
            sgmllib.SGMLParser.__init__(self)
            self.hits = []
            self.broken_message = 'Some error occurred'
            self._in_pre = 0
            self._current_hit = None
            self._last_found = None   # Save state of parsing
        def handle_data(self, data):
            if data.find('try again') >= 0:
                self.broken_message = data
                return
            elif data == 'illegal':
                self.broken_message = 'Sequence contains illegal characters'
                return
            if not self._in_pre:
                return
            elif not data.strip():
                return
            if self._last_found is None and data[:4] == 'PDOC':
                self._current_hit.pdoc = data
                self._last_found = 'pdoc'
            elif self._last_found == 'pdoc':
                if data[:2] != 'PS':
                    raise ValueError, "Expected accession but got:\n%s" % data
                self._current_hit.accession = data
                self._last_found = 'accession'
            elif self._last_found == 'accession':
                self._current_hit.name = data
                self._last_found = 'name'
            elif self._last_found == 'name':
                self._current_hit.description = data
                self._last_found = 'description'
            elif self._last_found == 'description':
                m = re.findall(r'(\d+)-(\d+) (\w+)', data)
                for start, end, seq in m:
                    self._current_hit.matches.append(
                        (int(start), int(end), seq))

        def do_hr(self, attrs):
            # <HR> inside a <PRE> section means a new hit.
            if self._in_pre:
                self._current_hit = PatternHit()
                self.hits.append(self._current_hit)
                self._last_found = None
        def start_pre(self, attrs):
            self._in_pre = 1
            self.broken_message = None   # Probably not broken
        def end_pre(self):
            self._in_pre = 0
    p = parser()
    p.feed(handle.read())
    if p.broken_message:
        raise ValueError, p.broken_message
    return p.hits

def index_file(filename, indexname, rec2key=None):
    """index_file(filename, indexname, rec2key=None)

    Index a Prosite file.  filename is the name of the file.
    indexname is the name of the dictionary.  rec2key is an
    optional callback that takes a Record and generates a unique key
    (e.g. the accession number) for the record.  If not specified,
    the id name will be used.

    """
    if not os.path.exists(filename):
        raise ValueError, "%s does not exist" % filename

    index = Index.Index(indexname, truncate=1)
    index[Dictionary._Dictionary__filename_key] = filename

    iter = Iterator(open(filename), parser=RecordParser())
    while 1:
        start = iter._uhandle.tell()
        rec = iter.next()
        length = iter._uhandle.tell() - start

        if rec is None:
            break
        if rec2key is not None:
            key = rec2key(rec)
        else:
            key = rec.name

        if not key:
            raise KeyError, "empty key was produced"
        elif index.has_key(key):
            raise KeyError, "duplicate key %s found" % key

        index[key] = start, length

def _extract_record(handle):
    """_extract_record(handle) -> str

    Extract PROSITE data from a web page.  Raises a ValueError if no
    data was found in the web page.

    """
    # All the data appears between tags:
    # <pre width = 80>ID   NIR_SIR; PATTERN.
    # </PRE>
    class parser(sgmllib.SGMLParser):
        def __init__(self):
            sgmllib.SGMLParser.__init__(self)
            self._in_pre = 0
            self.data = []
        def handle_data(self, data):
            if self._in_pre:
                self.data.append(data)
        def do_br(self, attrs):
            if self._in_pre:
                self.data.append('\n')
        def start_pre(self, attrs):
            self._in_pre = 1
        def end_pre(self):
            self._in_pre = 0
    p = parser()
    p.feed(handle.read())
    if not p.data:
        raise ValueError, "No data found in web page."
    return "".join(p.data)

redpajama_set_name: RedPajamaGithub


text:
Rosebery District High School
Welcome To Rosebery District School
Rosebery is situated on the rugged west coast of Tasmania. The name is taken from a mine pegged out in 1893 by Tom McDonald. He named it the Rosebery Gold Mining Company after the Prime Minister of England, Lord Rosebery. Today the mine, operated by MMG is the main employer within the town and mines gold, lead, copper and zinc.
Rosebery District High School provides education for students from Kindergarten to Grade 12. Being one of the larger towns on the west coast with a population of around 1000, Rosebery is one of two schools that provides secondary education across the West Coast.
Rosebery District High School ss part of the West Coast Cluster aims to build educational opportunities utilising information and communication technologies that allows its students to participate in a broad and comprehensive education equal to any student within Australia.
This page has been produced by the Department of Education.
Questions concerning its content may be directed by email to ServiceCentre@education.tas.gov.au or telephone 1800 816 057.
The URL for this page is:
You are directed to the disclaimer and copyright notice and a Personal Information Protection statement governing the information provided.

redpajama_set_name: RedPajamaCommonCrawl


text:
About Our Region Congregational Leaders
NFTY-MAR in "The Tent"
The Tent is a place of sharing and collaboration, of support and relationship building exclusively for URJ Congregations. This is a great way to share ideas, questions, and thoughts in real-time. The Tent uses Microsoft's Yammer platform which is available from any web browser or using their mobile app, and you can subscribe to receive posts by email.
Go to the NFTY-MAR group in The Tent
Join the conversation with other clergy, professionals and lay leaders from NFTY Mid-Atlantic area to share articles, videos, links and other resources. Start a conversation and invite feedback and reflections from your colleagues.
Receive timely NFTY-MAR updates including event information and registration updates, professional development opportunities and resources for your work.
Find information and resources in the document library including sample programs from events and youth groups, and regional recruitment materials (flyers, logos, social media graphics, etc.).
Jessa Cameron
Regional Director of Youth Engagement, NFTY-MAR
Jessa Cameron is excited to join the URJ team as the Director of Youth Engagement for the Mid-Atlantic Region of NFTY. Originally from Los Angeles, Jessa is an East…
Jessa Cameron is excited to join the URJ team as the Director of Youth Engagement for the Mid-Atlantic Region of NFTY. Originally from Los Angeles, Jessa is an East Coast transplant and is learning to love humidity, snow, and everything in between. After graduating from the University of Washington, where she studied political science and sociology, Jessa worked at the University of Maryland Hillel. In her spare time, she enjoys cheering for the Seahawks, traveling, and finding the best mac and cheese in DC.
TYG Scholarships for Regional Events
Information about the TYG scholarship process
Advisor Registration for Upcoming Events
Use this link to complete advisor registration for all regional events
Find a URJ Youth camp or program
Recruitment materials for URJ camps and youth programs
Information about NFTY, including programs and resources
Resources for Jewish learning and holidays
Information about the URJ and programs/services
Social justice advocacy resources and programs from Religious Action Center


text:
The Challenge of the Manger in Bethlehem
Tobias Roberts
Church Life, General
From opulent shopping malls in the Unites States to corners of crumbling adobe houses in rural Central America, the nativity scene surrounds us during this time of year. The manger with its bed of hay, the mules and shepherds, the cold Bethlehem night with an unfamiliar star shining brighter than the rest: there is an inescapable charm to this tender image that we have been celebrating at least since the first nativity scene was performed live by Saint Francis of Assisi over 700 years ago. It is the most fitting of images to commemorate what we celebrate: the incarnation of Emmanuel, God-amongst-us.
But what is the event that marks the beginning of this special time of year? Is it the first Sunday of Advent where we light the candle of expectation on the advent wreath, or is it the irresistible sales of Black Friday?
Undoubtedly, there are two faces to the season we celebrate as Christmas; two faces that are so radically divorced from one another that we would seem to be rather schizophrenic for combining the two.
On one side, Christmas is a time of community, of sharing, of reflection on the tenderness of the incarnation of Christ into our broken world. We celebrate and rejoice in the conviction that God became incarnate into a particular, historical reality: that of a poor Palestinian family living in an occupied country being forced to travel to their hometown by Imperial decree. Archbishop Ricardo Urioste of El Salvador considers the Christmas story to be defined by "A faith in a God who decides to undergo all the calamities through which the poor and ordinary folks pass…to take on the flesh and struggles and anxieties of the people." When we sing, "O come, O come Emmanuel, to ransom captive Israel, that mourns in lonely exile here, " we´re celebrating the face of Christmas that rejoices in the incarnation of God-amongst-us.
The other face of Christmas, however, is revealed in "Silver Bells", another popular carol: "City sidewalks, busy sidewalks dressed in holiday style…as the shoppers rush home with their treasures." Christmas is also most certainly a hectic time of unrestrained consumerism and a bombardment of commercial advertising provoking us to buy, buy, buy. It is the season when shopping becomes a coveted skill and the department stores and malls become true pilgrimage sites. In 2011, folks in the United States professed their allegiance to this face of Christmas to the tune of 469 billion dollars in holiday shopping purchases.
This lack of coherence between the two faces of the Christmas season is increasingly being perceived by more and more people. But why is it that these two faces of Christmas don´t belong together?
The remembrance of the Incarnation of Christ into our world is a celebration of intimacy and belonging; of community and sharing. Incarnation means undoubtedly that Christ became human, but also that he shared in the specific and particular circumstances of the place he was born into. He shared in the injustice of his people living under an imperial power, and in the poverty of being born in a manger. Incarnation is the ultimate identification and empathy with a certain place and a certain people.
The other face of Christmas, that of black Friday and cyber Monday and endless lines of shoppers, is the antithesis of incarnation. This "commercialized" version of Christmas that every good advertiser and publicity specialist drools over is born from an economy utterly divorced from any place or community. On the morning of December 25th, a child from Kalamazoo will unwrap a new video game made by another child in a sweatshop in Calcutta. A teenager in Manhattan will find under the tree a pair of shoes made by another underpaid teenager in Managua.
Whereas incarnation is characterized by the most intimate connection to a place and people, the economy of today is characterized by a complete dissociation with the distinctiveness and particularities of any place. Our society in general shares this unfortunate characteristic. Oddly, as folks travel home in the coming days to spend Christmas in the intimacy of family, they will find in airports advertisements proclaiming: "Nomads rejoice, we can now take you anywhere!" In the globalized, consumer driven world in which we live, we are continuously tempted to be mobile, to belong nowhere, and to share faithful community with no one.
But if we belong nowhere and are connected to no person or place, then how can we live out the incarnation? The nativity scenes that we find at every corner during these days should be an invitation for us to reflect on how to honor the incarnation in the un-placed world of today.
In the hidden mountains of Northern El Salvador, we can find an answer to what genuine incarnation looks like today. Father Rogelio Ponseele is a Belgian priest who came to El Salvador during the violent decade of the 1970´s and has been there ever since living alongside the peasants in the poorest villages of the country. A group of American college students doing their semester long immersion into the reality of Central America once asked Father Rogelio: "When you first came to El Salvador, how long were you originally going to stay?"
That question, loaded with the cultural baggage of living in an unattached and de-rooted society, brought a surprising answer to the group of students. Father Rogelio explained that, "I didn´t come for a visit. I came to stay, to be part of the community and the difficult reality of the poor of El Salvador." He came to El Salvador to incarnate his life amongst those he was to serve.
Colombian philosopher and ethicist Adela Cortina, contributing to the implications of incarnation today says that, "Those who don´t want to conform to the norms of today´s society, have to find their sustenance in the rootedness and warmth of concrete communities." Richard Klinedinst adds that, "In an age of detachment…committing to a particular neighborhood and its subsistence is a genuinely radical act."
Advent should be the season for us to reflect, not just on the tenderness of the manger scene, but of what that scene represents below the surface. It should push us to understand that God became incarnate in the world of the poor and oppressed and shared intimately in that reality. It should encourage us to make real the incarnation, to belong to a community and share in that reality which inevitably will include laughter and tears, joys and sufferings, untold possibilities and real limits. Following the example of the Incarnation of Jesus, we should also strive to become incarnate amongst the poor so as to better understand their reality, the injustice that gives rise to their poverty, and our own participation in that injustice.
Oscar Romero, the martyred archbishop of El Salvador, during his last Christmas reminded us that "It´s time to look for the Baby Jesus outside of the pretty images of our nativity scenes. We need to look for him amongst the malnourished children that have gone to bed tonight without eating, among the children forced by their poverty into selling newspapers on the street corners that will sleep tonight with their unsold papers as their blankets in doorways on the streets. We need to look for the Baby Jesus in the poor shoe shiner who perhaps made enough money today to buy a small gift for his mother, or perhaps wasn´t able to make enough money today and will be scolded by his stepfather." Romero, speaking from a profound connection to a concrete historical place and time and reality, again shows us what Christmas would look like if we were to take seriously the Incarnation.
Clearly, the incarnation is the beginning of the Christian faith. The birth of God-amongst-us is the beginning of the Kingdom of God. If there were no incarnation, there would be nothing more to the Christian message. But because God became a part of our broken world, Jesus was eventually led to the ultimate consequences of that faithful incarnation. His devotion to being incarnate in the harshness of the reality he was born into, brought him face to face with the injustice and violence and evil so prevalent in our world. Christ´s incarnation eventually led us to the other major Christian celebration: the death and resurrection of Holy Week.
The American farmer and writer Wendell Berry urges us to "practice resurrection" in our daily lives. To practice resurrection is to live as if the Kingdom of God is existent and real and bearing on our lives and livelihoods. But to practice resurrection, we must first have incarnated our lives into the particularities of a specific place, into the uniqueness of a concrete community, and also into the sometimes despondent reality that imperils the well being of that community. Without incarnation in place, there can be no community to practice resurrection.
May this season of Advent, then, be the motivation that pushes us towards living in incarnational community.
Tobias Roberts lives in Nebaj, Guatemala where he and his wife Yasmin Méndez are on assignment with Mennonite Central Committee, a development and peace agency of the Anabaptist churches in Canada and the U.S. He is a native of Bowling Green, Kentucky.
AdventBethlehemconsumerismEl SalvadorIncarnationOscar RomeroWendell Berry
What Would Jesus Say to the NRA?
Death, Violence and America: Is God the Answer or the Problem?
Advent 4: Incarnating God's Strength
Cory Driver
How Might Easter Be Reinterpreted in Light of Climate Change?
Brandon Ambrosino


text:
Could China Be Held Accountable for COVID-19?
Washington seems unwilling to risk bifurcation by punishing the Communist Party.
by John Jiang
Serhii Yevdokymov/Shutterstock.com
As things stand, there are two clear realities regarding the Chinese government's culpability for the COVID-19 pandemic.
The first is that China shoulders a large part of the blame for the ongoing disaster. Its slow, opaque response in the initial stages of the outbreak likely cost the world several weeks of confusion and inaction at a crucial time, according to a report last year by the Congressional Research Service. Whether the government could have prevented the virus from ever leaving Wuhan will always remain a matter of speculation, but there is little doubt that its misconduct early on has since snowballed into countless unnecessary deaths.
With the lab leak origin theory roaring back into respectable mainstream opinion, Beijing now stands credibly accused of a triple serving of recklessness: creating the virus in the first place, allowing it to escape, and then doing nothing while it rampaged through the local population.
The second reality, made all the more frustrating by the first, is that Beijing appears to have successfully escaped accountability. Sure, its reputation took a hit, but this has yet to translate into abnegated treaties or any serious economic repercussions beyond what was already in motion.
The best time to exact punishment is now. Just like with the 2008 milk adulteration scandal in China, memories are short and passions are fleeting. Beijing's capacity and willingness to muddy the waters has also grown substantially in the past decade. The world may soon return to business as usual — until the next catastrophe rears its head.
Congress has overwhelmingly demonstrated that it lacks the appetite for a legal confrontation with the People's Republic.
So why have America's leaders done nothing substantial to retaliate? The main reason is that doing so would accelerate the onset of a bifurcated world. Washington clearly finds this possibility unthinkable.
Take lawsuits, for example. Of all the avenues for seeking redress, they are the most natural fit for the pandemic specifically. Individual Americans or organizations could seek damages for deceased family members or medical bills, without the degree of politicization that the direct involvement of the federal government would bring.
Many members of Congress have sought to open this avenue for Americans. The latest attempt was made this week by New Jersey Rep. Chris Smith, who has repeatedly antagonized the Communist Party. Smith's effort follows two similar proposals by Texas Rep. Dan Crenshaw, as well as an unsuccessful initiative by Missouri Sen. Josh Hawley early last year.
All of these attempts have sought to open the floodgates to lawsuits against the Chinese government by tearing down the single biggest obstacle: China's protection under the 1976 Foreign Sovereign Immunities Act (FSIA). Under the act, federal courts are deprived of jurisdiction over civil suits brought against foreign sovereign entities. Exceptions exist but are narrowly focused on commercial activities by the offending state, which would have little to do with China's handling of COVID-19. Stripping China of FSIA immunity would therefore be the necessary first step to suing it.
What China hawks in Congress have yet to address, however, are the many, many other hurdles in place. A foreign state without immunity can still lay down a veritable minefield of legal obstacles, such as the doctrine of forum non conveniens, with which China could argue that American courts are inappropriate venues for suits relating to China, or the act-of-state doctrine, on whose grounds American courts have no business judging the decisions of foreign governments.
An American plaintiff would have to navigate all of these barriers, likely a multi-year process, and only then be able to argue the actual merits of their case. And even if they could convince a judge that China's actions bear more responsibility for the state of the pandemic in America than the actions of the American government, that wouldn't be the end of it. Making good on any damages awarded would be its own legal fiasco.
It all sounds like a headache — and it is. Yet American leaders could do much to clear the path if they wished to. They did exactly that in the case of an ongoing lawsuit against Saudi Arabia. In 2016, Congress overrode a veto by President Obama to pass the Justice Against Sponsors of Terrorism Act, which made Saudi Arabia vulnerable to cases brought against it relating to its role in the September 11 attacks. Five years later, the case is still slowly making progress.
By voting down similar attempts to strip China of sovereign immunity, however, Congress has overwhelmingly demonstrated that it lacks the appetite for a legal confrontation with the People's Republic.
The reasons are fairly obvious. Saudi Arabia, being under the political and military influence of the U.S., is unlikely to retaliate against minor perceived infractions by its superpower ally. China, by comparison, is a much more dangerous target. Its near-peer competitor status, combined with its diplomatic strategy of forceful retaliation, means that any move by the U.S. can and will be reciprocated. There are hundreds of billions of American assets within Chinese jurisdiction that could be "awarded" as damages. Moreover, any weakening of sovereign immunity could spiral into an international free-for-all. No doubt Beijing would try to enlist sympathetic governments, many of whom have no shortage of grievances against the West, to bombard the U.S with lawsuits.
America accepts the imperfect legal status quo precisely to avoid such a headache. Ending it would go beyond decoupling. It would be a rupture — a calamitous splitting in two of the post-Cold War world system.
It could be done, theoretically speaking. But it would step on too many toes ever to happen. For example, there is more American investment in China than vice versa, and therefore more for China to plunder; most of corporate America would be loath to see a conflict get to that point, or even close to it.
This desire to prevent bifurcation restrains America's ability to punish China through other means as well. Take, for instance, the possibility of ceasing interest payments on the trillion-plus dollars of American debt held by China, as de facto reparations for the damage caused by COVID-19. According to legal experts, the U.S. could technically justify the cancellation of debt on the grounds that China violated treaty obligations with its misleading messaging in the initial stages of the pandemic.
The fact that the move could be legally justified, however, does not mean that most of Washington would be willing to go along with it. Against a weak and easily isolated economy like Iran, it might work. But China is actively attempting to build a parallel international financial system to rival the dollar. America reneging on 13 digits' worth of debt would shake its reputation as the world's best debtor and accelerate China's plans. Sympathetic allies such as Japan and Australia could be willing to overlook the move, but what about ambivalent countries in Southeast Asia, Africa, or Eastern Europe, that China is attempting to bring into its sphere? In any case, Washington is unwilling to make the gamble.
For another perspective on how difficult it would be to extract concessions from China, just ask Mike Pompeo. The former secretary of state was the biggest China hawk in the Trump administration. Freed from his roles in the executive branch, you would expect Pompeo to hone his barbs against Beijing, now that he no longer has to worry about accidentally contradicting official U.S. policy.
But you'd be disappointed. In an op-ed published last week in the Washington Post, Pompeo demanded "punishment" against China by a "Biden-led coalition." The piece hits the right rhetorical notes but little else. It calls for "leading democracies" to "act together" to facilitate a "strong response" consisting of "calibrated unilateral and multilateral measures" against Beijing. For a newly minted policy institute fellow, Pompeo's suggestions are light on actionable specifics.
Perhaps the reason why is because Pompeo, Biden, and most of Congress struggle to even conceive of the U.S. reneging on its role in the global financial and legal system, even temporarily and to penalize an adversary. The collateral damage that would come from seeking reparations from China for COVID-19 stays Washington's hand.
Changing this calculus will take a years-long process of gradual decoupling. It will mean letting the passions of the present moment pass, though not the memory or the lessons learned. America must continue the process of gradually shedding its integration with the Chinese economy.
It will mean, in other words, recommitting to President Trump's China strategy, from long before the pandemic began, of low-intensity confrontation and patience.


Transform your business. Digital solutions for industry leaders.
Nodero are here to help you succeed. We provide expertise, guidance and general tech savviness to ensure your digital projects get results.
We build new systems, improve existing ones and get them to talk to each other.
Business Analysis, Design, Coding, Testing, Strategy - we can help with the entire development process.
Build for the devices your clients and staff are using. Nodero design and build amazing native applications across all platforms.
Cloud based solutions that are secure, scalable and great to use. We create systems that will grow with your business.
SharePoint is the number one intranet solution worldwide. Nodero can help you set up and use it to it's fullest.
Capture, understand and improve your business processes. Bring clarity to your business functions.
Matching business goals to user needs, our UX experts ensure your systems are great to use.
Make your data available wherever you need it. Understand your data with reporting and analytics.
Working with us there's no need to choose between beautiful design and rock solid quality. Marketing love us. IT love us. We're experts and we would love to build amazing things for you.
Great software involves so much more than coding. Nodero have experts in Business Analysis, UX / UI Design, Testing, Documentation and Project Management.
Excellence; Innovation; Simplicity; Trust; Friendliness.
We're committed to walking the talk and put people and great outcomes first.
We bring your ideas to life. Whether it's building something new, or improving something old; Nodero combine best of breed with novel innovation to craft your perfect solution.
Digital experts that can relate to you and your business. We pride ourselves on communication and our team are just as driven to deliver results as you are to achieve them.


*Document Type: Title V Permit bhp brake horsepower Btu British Thermal Unit APCD Rule 342, Control of x from boilers, steam generators etc. Boilers .
MARINE BOILERS & STEAM ENGINEERING.MARINE BOILERS. range from saturation to 600~650*C, Since the condensing steam film coefficient of heat transfer is high.


text:
Q: iron-ajax bind and write JSON to file I have the following iron-ajax element in my html:
<iron-ajax
  id="write-tweets"
  body='[{"statuses": "{{tweets}}"}]'
  url="/fscall"
  handle-as="json">
</iron-ajax>

And I have this in the js file for the above html:
Polymer({
is: "sample-app",

properties: {
  tweets: {
    type: Object,
    value: [],
  },
},

handleResponse(e){
  console.log("_________Twitter responses aquired:_________");
  this.tweets = this.tweets.concat(e.detail.response.statuses);
  this.writeTweets();
},

At this point, tweets is an array of JSON objects:

Now I'm trying to send this back to the node.js server so I can write/save it to a file.
writeTweets(){
  let ajax = this.root.querySelector('#write-tweets');
  ajax.generateRequest();
}
... //some unrelated code

I have the following in app.js:
app.get('/fscall', (req, res) => {
  fs.writeFile("tweets.json", JSON.parse(req.body, null, 4), function(err) {
    if (err) {
      console.log(err);
    }
  });
});

And here I'm running into errors, I have no idea how to access the JSON that I sent, req.body seems to be empty. Same happens if I try to wrap tweets in a getter (e.g. doing {returnTweets(){ return this.tweets;}, and body='[{"statuses": "{{returnTweets()}}"}]'.
Can anyone advise on how I could pass the JSON and print it?
UPDATE
OK so I'm managing to bind the tweets to the body of the request by doing
<iron-ajax
  method="POST"
  id="write-tweets"
  body$='{"statuses": {{tweetsParsed}}}'
  url="/fscall"
  handle-as="json">
</iron-ajax>

Where tweetsParsed is a property that contains the JSON.stringifyed tweets. Now if I check the ajax request, it contains the tweets in the body:

HOWEVER, I'm still not getting anything on the server side, and console. logging request.body returns {}... Any idea why this is happening?

A: *

*Can you confirm that json was send to server (via chrome dev tools)?

*Dont use iron-ajax its buggy as hell try fetch which is nativly supported by your browser

*If you actually send your json to the backend it should be in request.body.statuses

redpajama_set_name: RedPajamaStackExchange


text:
Anbaran-e Olya (, also Romanized as 'Anbarān-e 'Olyā; also known as 'Anbarān-e Bālā) is a village in Anbaran Rural District of Anbaran District, Namin County, Ardabil province, Iran. At the 2006 census, its population was 706 in 183 households. The following census in 2011 counted 549 people in 177 households. The latest census in 2016 showed a population of 933 people in 312 households; it was the largest village in its rural district.

References

Namin County

Towns and villages in Namin County

Populated places in Ardabil Province

Populated places in Namin County

redpajama_set_name: RedPajamaWikipedia


Iptables is the name of the firewall built into the Linux kernel. It is also the tool used for firewall configuration. This post explains how to use iptables with a range of IP addresses and/or ports. It could be used, for example, to allow SSH traffic from a number of systems. Or to open up a range of ports with a single firewall rule.


The renovation project was completed in December 2017. 208 209 In an interview published on, Domenico Scala, the head of fifa's Audit And Compliance Committee, stated that "should there be evidence that the awards to Qatar and Russia came onlybecause of bought votes, then the awards could be cancelled". Archived from the original on 9 November 2017. The Associated Newspapers of Ceylon Ltd. "2018 World Cup" redirects here. 204 Garcia criticised the summary as being "materially incomplete" with "erroneous representations of the facts and conclusions and appealed to fifa's Appeal Committee. He also said, "We are not going to be in a situation, as is the case of one, two or even three stadiums in South Africa, where it is a problem of what you do with these stadiums". 82 The Russian government had originally earmarked a budget of around 20 billion 83 which was later slashed to 10 billion for the preparations of the World Cup, of which half is spent on transport infrastructure. 230 However, the Ukrainian state TV still broadcast the World Cup, and more than 4 million Ukrainians watched the opening match. Archived from the original on Rumsby, Ben. The New York Times. Archived from the original on "fifa World Cup Russia 2018 Match Schedule" (PDF). Fan-IDs also granted World Cup attendees free access to public transport services, including buses, and train service between host cities. 32 33 The 32 teams were drawn into 8 groups of 4, by selecting one team from each of the 4 ranked pots. The award was sponsored by Hyundai. The Times of Israel. Retrieved "Match report Group A Russia v Egypt" (PDF). Archived from the original on 20 February 2017. Retrieved "Yaya Toure: Black players may boycott 2018 Russia World Cup". Archived from the original on Retrieved b "World Cup 2018: Ronaldo and Robbie Williams star in opening ceremony". Retrieved 9 February 2018.
Live Slots bonus Opening Casino Action - happy easter! Archived from the original on "VAR: Video assistant referees set to be used at 2018 World Cup in Russia". Archived (PDF) from the original on Retrieved "Match report Round of 16 Sweden v Switzerland" (PDF). The construction officially started on The project was completed on Saransk: Mordovia Arena. Archived from the original on 22 December 2017. Fox stated that it was still committed to broadcasting online casino bewertung ok spielen kostenlos a significant amount of coverage for the tournament. 22 23 The first qualification game, between Timor-Leste and Mongolia, began in Dili on part of the AFC's qualification, 24 and the main qualifying draw took place at the Konstantinovsky Palace in Strelna, Saint Petersburg, on Of the 32 nations qualified to play at the. 188 Merchandise See also: fifa World Cup video games On, EA announced a free expansion for fifa 18 based on the 2018 fifa World Cup, featuring all 32 participating teams and all 12 stadiums used at the 2018 fifa World Cup. 57 The final choice of host cities was announced on 29 September 2012.
Online casino welcome bonus spielen ko 181 Position Amount (million USD ) Per team Total Champions 38 38 Runner-up 28 28 Third place 24 24 Fourth place 22 22 5th8th place (quarter-finals) 16 64 9th16th place (round of 16) 12 96 17th32nd place (group stage) 8 128 Total 400 Marketing The. "Will VAR improve the World Cup?".
Modele Planche A Roulette way iphone Beste online casino 2014 Farm Fair gratis spilleautomater Golden gate. You have not yet voted on this site! If you have already visited the site, please help us classify the good from the bad by voting on this site. Archived from the original on "Konstantinovsky online casino welcome bonus spielen ko Palace to stage Preliminary Draw of the 2018 fifa World Cup". 51 fifa declared the implementation of VAR a success after the first week of competition. Until then there were a record 36 straight games in which at least one goal was scored. 18:00 MSK ( UTC3 ) 17:00 yekt ( UTC5 ) 21:00 MSK ( UTC3 ) 18:00 MSK ( UTC3 ) 18:00 samt ( UTC4 ) 17:00 MSK ( UTC3 ) Group B The first match of the group, Iran's. Archived from the original on Retrieved "Moscow official says West is trying to deny Russia World Cup".


text:
HomeYoutubeFacebook, Twitter, YouTube to remain blocked until law and order situation improves: PTA
Facebook, Twitter, YouTube to remain blocked until law and order situation improves: PTA
The Pakistan Telecommunication Authority (PTA) said on Saturday that social networking websites Facebook and Twitter and video-sharing sites YouTube and Dailymotion would remain blocked in the country until the law and order situation improved.
However, the telecom watchdog added that there had been no instructions to block cell phone services so far.
Access to these websites was blocked hours after law enforcers launched an operation to break up a protest sit-in in Islamabad, drawing the ire of Pakistani internet users.
Cameroon news Facebook Foreign News Latest News Pakistan Politics Pakistan Telecommunication Authority PTA Social Media Twitter Youtube


text:
Q: Including Formvalidation.io in meteor I am developing a meteor app.

*

*I bought a copy of the formvalidation package and downloaded the zip
file

*Copied the folder under client directory

*Created a file named  startup.js in client directory root

*Added the following code
Meteor.startup(function(){
$.when(
    $.getScript( "lib/formvalidation/dist/js/formValidation.min.js" ),
    $.getScript( "lib/formvalidation/dist/js/framework/bootstrap.min.js"),
    $.Deferred(function( deferred ){
        $( deferred.resolve );
    })
).done(function(){
    console.log( "Load was performed." );
});

});
When the application loads, I see the error message:
Uncaught ReferenceError: FormValidation is not defined

Any suggestions?

A: Try moving formValidation.min.js and bootstrap.min.js to the client/compatibility directory. You won't need startup.js at all, since files in the client/ directory are automatically loaded client-side.
client/compatibility is used for scripts that declare a global variable.


text:
Q: Import data not process 100% in magneto When I import the data of 45065 records it processed 42 data and stop further.
I have done all setting like.
post_max_size (currently is 1024M) and upload_max_filesize (currently is 1024M)
max_input_time = 60.
Here I attached the screen shots, please assist me on how to fix this issue so that the data is processed 100%.

A: What the error are telling you is you need to up those PHP settings, so post_max_size needs to be bigger than 1024M and so on. try 3072M? I would also change maxi_input_time to something higher. But there isn't one setting that can fix this for you, it's more trial and error - as a side note it's not usually recommended to use Magento's default import/export as it's so buggy (slow, fails, etc.) Magmi is a much better solution.
https://sourceforge.net/projects/magmi/


text:
Preview: Final Week of the 50th Chicago International Film Festival
Submitted by NickHC on October 17, 2014 - 1:10pm
Evolution of a Criminal
Film Festival Coverage
Futuro Beach
CHICAGO – The 50th Chicago International Film Festival has hit its final six days, continuing to offer Chicagoans an electrifying group of films from around the world. The festival breaks down these films in several categories, including the Main Competition, New Directors, Docufest, Out-Look (LGBT), World Cinema, After Dark and Spotlight Scandinavia.
HollywoodChicago.com contributors Nick Allen and Patrick McDonald have been sampling the best of the festival, and offers this preview of this final preview of the best to be found in the festival's remaining days. Each capsule is designated with NA (Nick Allen) or PM (Patrick McDonald), to indicate the author. Be sure to check back with this list, as more capsules will be added as more films are screened.
Don't forget to check out our previous coverage of CIFF 2014, featuring numerous recommended films that are still playing.
Part One of HollywoodChicago's CIFF 2014 Coverage
Part Two of HollywoodChicago's CIFF 2014 Coverage
CENTERPIECE FILM: "Evolution of a Criminal"
'Evolution of a Criminal'
Photo credit: Chicago International Film Festival
A man takes back control of his life in "Evolution of a Criminal," a must-witness documentary that provides a rare first-person account of a convict's story before and after prison. Director Darius Clark Monroe exercises fine, fearless narrative and journalistic filmmaking as he goes deep into his past with the help of witnesses, heart-racing reenactments of the bank robbery that changed his life, and personal moments that no outsider's profile could justify. Executive produced by Spike Lee, this documentary offers a success story in its epilogue, nonetheless after a necessary account of an experience that is both familiar and foreign to viewers. (NA)
Sunday, 10/19, 7:00pm
Monday, 10/20, 6:15pm
Festival-goers looking to take a break from the heavier lifting of the festival might be charmed by this French romantic comedy about a group of actors trying to a make a film. Focused around the accidental rise of an extra-turned-lead-actor (who says out loud that Bruce Willis is a genius actor), the references to filmmaking is equally silly and specific. "Maestro's" best jokes involve nudges to the technical artistry of making a movie, including stressed crew members who do the heavy lifting for a revered filmmaker who can supposedly do no wrong. A bonus to the experience of "Maestro" is its historical significance, as the film is inspired by director Eric Rohmer's relationship with an actor on the set of his 2006 film "The Romance of Astrea and Celadon." Even if that last sentence means nothing to you, the light fun of the chaotic "Maestro" will still make you laugh. (NA)
Friday, 10/17, 2:30pm
Tuesday, 10/21, 5:45pm
"Shorts 1: City and State - Locally Sourced"
Shorts 1: City and State
This upcoming weekend at the Chicago International is "short film" themed, with all of the packaged programs available (click the link below for schedules). The locally sourced "City and State" shorts are all from Chicago or Illinois, and has an amazing array of subjects and stories. Watch out for "Speed Dating" (Meghan Artes), "Lucy" (Zoe Lubeck), "Frame Walk" (Hayoung Jeon), "Drifting" (Joel Benjamin), "Jaspa' Jenkins" (Robert Carnilius) and "Pariental Guidance" (Lonnie Edwards, who also won the State of Illinois "Shortcuts" Award contest for best short). (PM)
Sunday, 10/19, 12:00pm
In 1975, the Chicago International Film Festival held the world premiere of Milos Forman's iconic "One Flew Over the Cuckoo's Nest." Now, with producer Saul Zaentz (also of "Amadeus" and "The English Patient") in attendance, the CIFF marks its 50th year with one premiere that went on to create a worldwide sensation. See this winner of "Best Picture," "Best Actor," and "Best Actress," at the place where it was first introduced.
Saturday, 10/18, 4:00pm
An intriguing history of a relationship, split into three stories. A lifeguard in Brazil cannot save a male German tourist, and when he delivers the news of the death to his male traveling companion, the lifeguard and the German mourner begin a relationship. Death, dying, love and renewal permeates all three segments, the most illustrative of these themes are in the third segment. The film highlights new themes for gay films, with the better acceptance of orientation in society creating new issues in the subculture, especially having to do with the complications of relationships. We all can relate to that. (PM)
Michael Keaton soars in a film that you might think is autobiographical – an aging movie star, who used to be a franchise movie superhero called Birdman, takes a hack out of Broadway by adapting a series of Raymond Carver short stories (the staging of the stories are as intriguing as the backstage antics). But it isn't Keaton, it's a fully realized character that uses the old Birdman hero as a voice in his head. The supporting cast, including Naomi Watts, Zach Galifianakis, Emma Stone and Edward Norton, is a dream. Director Alejandro González Iñárritu ("Babel") provides an illusion that that whole movie was done in one take, which is extraordinary. This film needs to filter through your perspective, because it lives as a conscious flight-of-fancy that furnishes its own wings. (PM)
An American's fantasy of supporting and sponsoring young men and women in third-world countries is given a strong dose of reality with this striking documentary. "Life After Death" parallels two sides of the world, connected by charity - a Rwandan young man trying to make a living in his post-genocide society, and the Texas couple who sponsor him, of which he calls mommy and daddy. With the film produced by the couple, "Life After Death" provides an interesting clash between filmmaker and subject, as the mindsets of two don't seem to be shared. Director Joe Callander speaks most vividly through his cinematography and editing, which assembles footage to show life as is in a piece of the world that can't be aided by simple charity.
This send-up of the "post racial" society, through the boundaries and challenges of an elite college, picks rightfully at a scab that probably will never heal – as long as people feel a need for superior over the other. Writer/director Justin Simien pulls no punches on the attitudes of white America towards their African-American brethren. As individuals, it's a reminder to NOT get into the hive mind, where acceptance into a certain group means marginalizing another. And those in power continue to use this marginalization to win elections. "Dear White People" has the Spike Lee influence – the tone feels like "She's Gotta Have It" – but with much more subtlety and mindfulness. (PM)
With only two more months left of films in 2014, Steve James' documentary "Life Itself" remains one of its absolute best. This story of famous Chicago Roger Ebert is a celebration that doesn't wear off in repeat viewings, and provides an exuberant account of one of the festival's finest attendees. James and Chaz Ebert are scheduled to appear at this special screening, a lovely option to close out the 50th year of a festival that our man Roger so deeply influenced. (NA)
Wednesday, 10/22, 8:00pm
The 50th Chicago International Film Festival takes place from Oct. 9 to Oct. 23, 2014. Click here for film schedules, information and to purchase tickets.
Interview: Co-Director Erica Weiss on 'The View From Tall' at Midwest Independent Film Festival
Interviews: Filmmaker Michael Moore Meets Chaz Ebert at 50th Chicago International Film Festival
Feature: Top 25 Interviews of 2014, By Patrick McDonald
Slideshow: Exclusive Red-Carpet Portraits at the 50th Chicago International Film Festival
Interviews: Grace McPhillips, Steve Scholz on Chicago Acting in Film Meetup's 'Holiday Hurrah'
Interview: From Hollywood to Holy Vows, Mother Dolores Hart on Her Book 'The Ear of the Heart'
Feature: 2013 Chicago International Film Festival Highlights, Part One
Film News: DAY FOUR of 54th Chicago International Film Festival Visits 'Widows'
Interview: Producer George Avraam on 'Beloved Days' at Chicago European Union Film Fest
Interview: Gordon Quinn on 50th Anniversary of Kartemquin Films
Oscar Week Feature: Top 20 Interviews of 2015, by Patrick McDonald
Entertainment News: Film & Comedy Star Robin Williams Dies at 63


text:
Цибуле́в () — посёлок городского типа в Уманском районе Черкасской области Украины.

История
В XIX веке селение входило в Липовецкий уезд Киевской губернии.

Во время Великой Отечественной войны с 1941 до 1944 селение находилось под немецкой оккупацией.

Президиум Верховного Совета Украинской ССР Указом от 23 мая 1978 года постановил в целях установления единого написания на русском языке населённых пунктов уточнить наименования поселка городского типа Цыбулев и впредь именовать его — Цибулев.

В январе 1989 года численность населения составляла 3974 человека.

В мае 1995 года Кабинет министров Украины утвердил решение о приватизации находившегося здесь завода сельскохозяйственного машиностроения.

На 1 января 2013 года численность населения составляла 3697 человек.

Известные уроженцы
 Дзигунский, Михаил Яковлевич — Герой Советского Союза.

Местный совет
19114, Черкасская обл., Монастырищенский р-н, пгт Цибулев, ул. Ватутина, 21

Примечания

Ссылки

Населённые пункты Монастырищенского района
Посёлки городского типа Черкасской области


River island is always one of my favourite sales. It always starts online first which I much prefer and let's be honest online shopping is so handy.
River island have started there foot wear sale, I've a few pair of river island shoes and find the quality amazing.
Silly season as I like to call it, is just about to start and lets be honest it's nice to have a new outfit for Christmas parties.
River island have 40% off party wear at the moment, so its the perfect time to pick up a new outfit.
Its Christmas so we have to start with a sparkly dress and this green sequin dress it perfect it was was €55 now €33 click here to buy .
If you are not a fan of skirts or dresses this black velvet outfit is perfect the trousers wore €45 now €25 click here to buy the top was €29 now €20 click here to shop .
If you prefer a nice top and jeans combo this gold sequin top is perfect it was 47 now 25 click here to shop .
The River Island show sale has started, I'd say the main sale will start this week to.
I love sale's and I would say I check the River island sale section nearly every day, just to see if there is anything new added.
This week I did buy a jumpsuit in petite, I love when I find a jumpsuit in petite as I don't have to pay extra to get it taken up it was €94 now €30.00 .
I am always telling people to check the River Island sale section regularly, as they add items to it and if you order now you will get it in time for Chrismas. Also you might find the perfect gift for a loved one.
Another tip is if you get it delivered to the shop there is no delivery charge.
River Island Devet set in double was €55.00 now €18.00 click here to buy , they also have it in single was €40.00 now €12.00 click here to buy . Any teenage girl would love this, sure I would love it now for my bedroom.
Grey check bow dress was €87.00 now €30.00 click here to buy .
Silver bow dress was €87.00 now €30.00 click here to buy .
Grey roll neck slogan jumper and it was €55.00 now €24.00 click here to buy .
Black Friday is the 24th November this year and I can't wait. I love getting a discount or a sale item, it just makes shopping more fun.
River Island have started a black friday warm up sale today, its perfect time to get your christmas outfit sorted and here are my top picks.
As I said in my last post I am having a love affair with pink at the moment.
Everything I seem to pick up lately is pink, I showed you my star buy last month a duster coat from penneys.
I have styled it with river island pearl jeans I got on sale and topshop tshirt and my new pink penneys shoes.


text:
Homeland Armor Maintenance
When a vehicle was too badly damaged to be repaired by the field repair shop it was sent back to Germany for homeland repair. The repairs were usually done at the factory making the vehicle. When the vehicle was received, one of four things could happen:
Repaired and sent to the Feldzeuginspektion (Fz In) (Campaign inspectorate). These vehicles were not included in the Waffenamt (Wa A) (Office of Armaments) (office of armaments) production numbers.
Converted to a different type of combat vehicle such as a Pz Kpfw II being converted to a Marder II. These vehicles were were generally included in the Waffenamt production numbers with a note that they were rebuilt vehicles.
Converted to school vehicles.
Scrapped, if the damages were too extensive.
Most armored vehicles were repaired at the field repair shops, as illustrated by these numbers for the months of October to December 19431:
Pz Kpfw III
Pz Kpfw IV
Pz Kpfw Panther
Pz Kpfw Tiger
973 62 911 90 1294 57 3178 209
Assault guns
652 22 698 19 873 41 2223 82
Self-propelled anti-tank guns
Self-propelled artillery
Pz Kpfw II
Pz Kpfw 38 (t)
200 60 195 43 224 33 619 136
1825 144 1804 152 2391 131 6020 427
The table below gives an overview of the number of fully-tracked armored vehicles going through homeland repairs during first six months of 1944. The numbers include all variants of each vehicle type, and not just the basic vehicle, except assault guns that were counted seperately. In addition to the fully-tracked armored vehicles, the total for armored cars from 31 October 1939 to 30 June 1944 was:
Inflow: 2090
Repaired: 1883
Scrapped: 94
Stock 1 July 1944: 113
The number of scrapped vehicles listed in the table does not represent the total number of tank losses. Rather, they only count those that were scrapped after being sent for homeland repairs. Most destroyed tanks were scrapped without first being considered for repairs. For example, from September 1939 to March 1942, a total of 5055 German tanks were written off, compared to 498 scrapped by the homeland armor maintenance from 1939 to 1942.
Pz I
Pz II
Pz III
Pz IV
Pz V
Pz VI
Stu Gesch
Pz 35
le Pz Sp
s Pz Sp
1939 to 31 December 1942
2190 1201 1414 548 - - 222 316 602 - 2 50 6543 1645
1957 909 910 354 - - 138 285 247 - 5 4805 1485
Scrapped
90 164 111 58 - - 8 18 49 - - 498 71
143 128 393 136 - - 76 13 306 - 2 45 1240 89
1 8 44 5 - 2 1 - 28 - 5 94 14 7
2 12 24 11 - - 3 - 15 - - 67 28 6
- - - - - - - - - - - - - -
142 124 413 130 - 2 74 13 319 - 2 50 1267 76
5 49 37 26 - - 9 - - - - 126 12 3
26 17 20 - - 2 20 - 15 - - 100 19 6
16 21 25 2 - - 1 3 22 - - 90 - -
3 8 17 7 - - 3 - 5 - 30 73 - -
22 47 48 10 - - 15 1 49 1 - 193 11 7
22 24 44 7 - - 5 9 85 - - 196 11 7
- - 11 2 - - 1 - - - - 14 - 3
101 148 375 148 - - 80 3 208 1 2 20 1101 54
17 43 67 24 - - 14 2 24 - - 191 12 4
28 21 31 26 - - 2 1 54 - 20 183 18 2
90 170 411 146 - - 80 3 208 1 2 4 1109 50
8 8 55 24 - - 7 1 19 - 122 22 7
12 23 113 70 - - 30 - 31 - 279 16 8
8 25 37 - - - 8 - 3 - 81 1 -
78 117 316 100 - - 49 4 193 14 2 4 871 54
8 27 29 7 - - 6 - 12 - 89 16 13
25 42 50 36 - - 6 1 63 - 223 12 3
1 2 1 3 - - - - 11 - 18 1 -
60 100 294 68 - - 49 3 131 14 2 4 719 67
6 15 75 27 - - 29 - 15 - 167 9 1
1 - 1 1 - - 1 - - - 4 - -
51 86 310 69 - - 70 2 99 14 2 4 701 40
7 43 71 62 22 3 25 - 17 1 251 6
13 19 61 22 - - 18 1 33 - 167
1 7 2 8 - - 2 - 14 - 34
44 103 318 101 22 3 75 1 69 15 2 4 751 18
3 13 48 57 8 11 19 6 10 - 175 14 11
12 32 67 15 - - 9 - 41 - 176 - 2
- - 4 7 2 - - - - - 13 - -
35 84 295 136 28 14 85 7 38 15 2 4 737 41
25 47 74 72 31 12 44 - 23 - 328 9 14
13 24 47 14 1 - 22 1 21 1 144 22 4
- - 4 4 4 - 1 - - - 13 - -
47 107 318 190 54 26 106 6 40 14 2 4 908 38
6 7 90 19 6 7 6
45 89 336 240 82 29 139 6 37 13 2 4 1016 38
4 31 81 86 18 21 47 - 17 3 308 33 21
3 10 31 24 2 - 41 - 20 - 131 22 8
- - 2 - 14 - 1 - - - 17 - -
46 110 384 302 84 50 144 6 34 16 2 4 1176 62
3 50 63 95 63 18 98 1 37 1 429 15 3
2 28 21 39 8 3 91 - 11 1 204 - 5
- 2 - 6 5 4 1 - 1 - 19 - -
47 130 426 352 134 61 150 7 59 16 2 4 1382 75
4 36 49 103 42 73 92 - 17 - 416 39 16
16 37 24 33 14 24 69 3 3 - 223 6 4
- 3 14 3 5 5 7 - 2 1 40 - -
35 126 437 419 157 105 166 4 71 15 2 4 1535 120
12 21 16 50 31 12 29 - 16 3 190 25 14
11 31 55 37 23 35 104 1 24 - 321 37 11
28 102 338 417 163 82 79 3 61 17 87 4 1377 111
20 27 19 22 31 7 35 - 11 17 22 211 19 10
- 23 85 65 11 9 66 1 19 - 14 293 15 6
- 1 12 12 3 7 7 - 1 - - 43 - 3
- 12 78 36 18 28 29 1 8 8 10 228 23 8
5 20 90 54 15 9 27 1 16 5 6 248 17 8
- 13 25 8 - 26 12 - 3 2 - 89 5 -
43 84 223 336 183 66 31 2 41 35 99 4 1143 117
75 26 19 39 23 10 15 - 7 1 33 248 23 5
10 15 90 59 11 7 10 - 8 3 19 232 27 5
- 1 3 5 3 33 4 - 1 6 1 57 - -
176 102 182 301 192 36 45 2 39 27 2 4 1102 113
17 16 42 64 15 19 71 - 26 2 272 17 7
13 26 67 65 23 11 24 1 21 - 251 32 6
- 3 7 11 2 7 9 - 1 - 40 - -
180 89 150 289 182 37 83 1 43 29 2 4 1083 99
VK 901, VK 1601, and VK 1801. Back
School vehicles included under each vehicle chassis. Back
The April 1943 report does not explain why the stock does not match what would be expected based on the numbers from the previous month. Back
No longer reported. Back
13 vehicles were moved from Pz Kpfw II to VK column. Back
Report missing. Back
43 for Pz Kpfw II, Pz Kpfw 38 (t), and self-propelled guns combined. Back
Heimatinstandsetzung von Pz.Kpfw.. Back
Instandsetzung der Fahrzeuge. Berlin : Waffenamt, 1943. 3 p. Wa J Rü (WuG 6) Az. 65 a 1611/IIIa Nr. 414/43 g.Kdos.. NARA T78 R151.
Instandsetzung der Fahrzeuge. Berlin : Waffenamt, 1943. 3 p. Wa J Rü (WuG 6) Az. 65 a 1611/IIIa Nr. 91/43 g.Kdos.. NARA T78 R151.
Instandsetzung der Fahrzeuge. Wünsdorf : Waffenamt, 1944. 3 p. Wa J Rü (WuG 6) Az. 65 a 1611/IIIa Nr. 225/44 g.Kdos.. NARA T78 R151.
Heimatinstandsetzung von Pz.Kpfw.. Generalquartiermeister Abteilung III, 1944. 4 p. Gen Qu/Abt III - Nr. III/61 730/44 geh. BArch RH 10/52.
German Armor Losses
Tiger Losses