text:
Home Angry American's 'We don't have anything': landlords demand rent on flooded Houston homes
Angry American's
Seas and Waves Roaring
'We don't have anything': landlords demand rent on flooded Houston homes
Displaced families say they are struggling to pay rent on damaged dwellings, as an acute housing crisis grips south-east Texas after Hurricane Harvey
Rocio Fuentes weighed up the cost of getting some new sofas for her new apartment in Pasadena, Texas, and decided the family budget could just about stretch to it. Just one month after moving in, Hurricane Harveyswept through and the Fuenteses were left not only with the ruined furniture but also an ongoing rental demand for a dwelling they had to flee.
"At first we didn't think it would be that bad, but then the water came through the wall and up through the carpet," Fuentes said. "Once we saw the water wasn't going to stop, we left."
Fuentes, her husband Jaime and their five children, ages ranging from seven months to 14 years, were plucked from the floodwaters by her mother, who arrived in a truck. They are now crammed into her sister's apartment and with no insurance have little idea where they will live next. Jaime is unable to earn money because his construction job has been paused due to the flooding.
But while everything has changed for this family, they are still expected to pay for their abandoned home.
"Our landlords say we have to pay rent and late fees and every day it is going up," Fuentes said. "We are paying rent for somewhere we can't live in. They said 'you aren't the only ones in this situation', but what are we supposed to do? We don't have any money. We don't have anything."
Submerged houses in Houston after tropical storm Harvey. Photograph: Adrees Latif/Reuters
An acute housing crisis is starting to grip thousands of other families in south-east Texas as the floodwaters ebb away, with a death toll put at 60 on Monday. More than 180,000 houses in the Houston area have been badly damaged, with only a fraction of occupants owning any flood insurance. And under Texas law, rent must still be paid on damaged dwellings, unless they are deemed completely uninhabitable.
A spokeswoman for the city of Houston's housing department said city officials "are aware these problems exist" but said that state law deals with the situation. She said the city was still assessing the total number of people in need of housing assistance.
Under the Texas property code, if a rental premises is "totally unusable" due to an external disaster then either the landlord or tenant can terminate the lease through written notice. But if the property is "partially unusable" because of a disaster, a tenant may only get a reduction in rent determined by a county or district court.
"There are a lot of property owners who aren't conscious of what has gone on; they are being rude and kicking people out," said Isela Bezada, an unemployed woman who lived with 10 family members in a Houston house until her landlord took her to court to evict her after the hurricane hit.
Bezada, like Fuentes, has had almost every area of her life touched by the flood. Her relatives, who work in home renovations, have little opportunity to bring in money until the full gutting of sodden houses – piles of torn up carpet, broken chairs and children's toys have become a common adornment to the front of Houston homes – and she worries about other family members stranded in Port Arthur by a flooded highway.
"There are people who have been hit really badly by these floods," Bezada said. "We are all human beings. We all deserve help."
A sense of maudlin uncertainty hangs over many people who now depend on shelters and food distribution centers where once they had a stable home life. At the St Juan Diego Catholic Church in Pasadena, hundreds of people rifle through huge piles of donated clothing while tamales and pupusas are cooked outside for the hungry crowd. A sign inside the donation center, in Spanish, informs families they can only take one package of bottled water each.
SOURCEThe Guardian
Previous articleHouston Resident Rebecca Reisig who warned of 50 inches of rain & 100,000 homes destroyed dubbed "fake news" by City officials VINDICATED
Next articleLiberal Group Raising Funds for Hurricane Harvey Victims to Have Abortions
Forecasters expect Artic Blast to break 170 records across US
This week's cold snap is only an appetizer compared with the main Arctic blast that's coming next week, meteorologists said. That freeze could be one...
Alaska Airlines will give people a 'yellow card' for not wearing...
Interesting News August 8, 2020
Pentagon Confirms UFO Videos, Marking Return of Biblical Extraterrestrials
Aliens/UFO's May 4, 2020
Texas woman uses hand sanitizer, then burned while lighting candle: report
Horrible News September 6, 2020
Alaska reels from more than 500 small quakes since Friday's 7.0...
Bible Prophecy December 2, 2018


I crouched below the railing and held my breath. My parents stayed silent for a long time, probably trying to decide if they heard someone listening to them. Fortunately, this place made all sorts of noises at night—one of the benefits of living in a haunted castle. Even better, Uncle Mervin floated by with a book tucked under his arm, complaining to himself about how he couldn't get any reading done with all that ruckus, and he poofed through the wall in search of a quieter location.
I eased out the breath that'd been burning up in my chest and waited for my parents to start talking again.
Hold on. Now this was getting interesting. The murders have been all over the news for the last few months. In school, the only thing we talked about more than the murders was the super-cool rock band the Ghastly Brothers—Nick Ghastly is perfectly horrible, by the way, I don't care what Sally says.
Did my dad know who had been committing these murders? I stretched so far over the railing to listen that I nearly tipped over the side.
"The Director," Dad said in a whisper that I couldn't even hear—and I was sitting right next to him.
"Who?" Mom asked, crossing her arms over her chest.
I noticed a whole exchange going on between the two of them with their eyes, and I became angry. I hated being left out of a conversation, especially one about me. "Hello ...? Promised what?" I demanded.
"What?" I asked. I didn't like his coddling tone one bit. It reminded me of the way he'd told me about us moving here. And that bit of information changed my life forever.
As he decided on the words to say, his face grew increasingly pale.
"Go ahead, Bill. Tell her. She needs to know," Mom said. She had calmed down considerably, which did nothing to help the adorable feeling of ice-cold worms squiggling through my belly. Now I knew the news couldn't be good.
Click HERE to see the follow the rest of the Tour.


In an older post (at this link), I had provided some information that Rich had found on mechanical issues affecting Commonwealth tanks during CRUSADER. Working my way through the Queen's Bays war diary for January 42, I have now come across a statistic of tank breakdowns for mechanical reasons during the Axis counter-offensive of January 1942. The Queen's Bays were one of the three armoured regiments of 2 Armoured Brigade, 1 Armoured Division, and were equipped with a mix of 31 Cruiser Mk. VI (Crusader), 1 Cruiser Mk. IV, and 19 M3 Stuart tanks.
Over the course of operations, 22 Cruiser tanks (21 Mk. VI, and 1 Mk. IV) broke down, three developing two separate faults. One tank broke down due to a collision. Ignoring the latter, the failure rate was 77% including the three twin-failures.
Two M3 Stuart's broke down, or 11%, one of them due to having towed broken down Cruisers, and being worn out in consequence, and the other due to faulty electrical wiring. Five M3 Stuarts were lost due to lack of petrol (the high petrol consumption of the aerial engine used in the tank was responsible for this), and one was unaccounted for.
On the whole, I would see the mechanical performance of these tanks as appalling. I am wondering if the regiment had been given insufficient time to acclimatise, or indeed what other reason could have been responsible for this. In any case, it is clear that the British tankers of the Bays were fighting with one hand tied behind their backs.
This entry was posted in Content and tagged Commonwealth forces, Crusader Tanks, Ground forces, Queen's Bays. Bookmark the permalink.


text:
import base64
from binascii import hexlify
import hashlib
import random
import socket
import ssl
from struct import pack, unpack, Struct
import sys
import time
import traceback

from addresses import calculateInventoryHash, encodeVarint, decodeVarint, decodeAddress, varintDecodeError
from bmconfigparser import BMConfigParser
from debug import logger
import defaults
from helper_sql import sqlExecute
import highlevelcrypto
from inventory import Inventory
from queues import objectProcessorQueue
import state
from version import softwareVersion

#Service flags
NODE_NETWORK = 1
NODE_SSL = 2
NODE_DANDELION = 8

#Bitfield flags
BITFIELD_DOESACK = 1

#Error types
STATUS_WARNING = 0
STATUS_ERROR = 1
STATUS_FATAL = 2

#Object types
OBJECT_GETPUBKEY = 0
OBJECT_PUBKEY = 1
OBJECT_MSG = 2
OBJECT_BROADCAST = 3
OBJECT_I2P = 0x493250
OBJECT_ADDR = 0x61646472

eightBytesOfRandomDataUsedToDetectConnectionsToSelf = pack(
    '>Q', random.randrange(1, 18446744073709551615))

#Compiled struct for packing/unpacking headers
#New code should use CreatePacket instead of Header.pack
Header = Struct('!L12sL4s')

VersionPacket = Struct('>LqQ20s4s36sH')

# Bitfield

def getBitfield(address):
    # bitfield of features supported by me (see the wiki).
    bitfield = 0
    # send ack
    if not BMConfigParser().safeGetBoolean(address, 'dontsendack'):
        bitfield |= BITFIELD_DOESACK
    return pack('>I', bitfield)

def checkBitfield(bitfieldBinary, flags):
    bitfield, = unpack('>I', bitfieldBinary)
    return (bitfield & flags) == flags

def isBitSetWithinBitfield(fourByteString, n):
    # Uses MSB 0 bit numbering across 4 bytes of data
    n = 31 - n
    x, = unpack('>L', fourByteString)
    return x & 2**n != 0

# ip addresses

def encodeHost(host):
    if host.find('.onion') > -1:
        return '\xfd\x87\xd8\x7e\xeb\x43' + base64.b32decode(host.split(".")[0], True)
    elif host.find(':') == -1:
        return '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF' + \
            socket.inet_aton(host)
    else:
        return socket.inet_pton(socket.AF_INET6, host)

def networkType(host):
    if host.find('.onion') > -1:
        return 'onion'
    elif host.find(':') == -1:
        return 'IPv4'
    else:
        return 'IPv6'

def checkIPAddress(host, private=False):
    if host[0:12] == '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF':
        hostStandardFormat = socket.inet_ntop(socket.AF_INET, host[12:])
        return checkIPv4Address(host[12:], hostStandardFormat, private)
    elif host[0:6] == '\xfd\x87\xd8\x7e\xeb\x43':
        # Onion, based on BMD/bitcoind
        hostStandardFormat = base64.b32encode(host[6:]).lower() + ".onion"
        if private:
            return False
        return hostStandardFormat
    else:
        hostStandardFormat = socket.inet_ntop(socket.AF_INET6, host)
        if hostStandardFormat == "":
            # This can happen on Windows systems which are not 64-bit compatible
            # so let us drop the IPv6 address.
            return False
        return checkIPv6Address(host, hostStandardFormat, private)

def checkIPv4Address(host, hostStandardFormat, private=False):
    if host[0] == '\x7F': # 127/8
        if not private:
            logger.debug('Ignoring IP address in loopback range: ' + hostStandardFormat)
        return hostStandardFormat if private else False
    if host[0] == '\x0A': # 10/8
        if not private:
            logger.debug('Ignoring IP address in private range: ' + hostStandardFormat)
        return hostStandardFormat if private else False
    if host[0:2] == '\xC0\xA8': # 192.168/16
        if not private:
            logger.debug('Ignoring IP address in private range: ' + hostStandardFormat)
        return hostStandardFormat if private else False
    if host[0:2] >= '\xAC\x10' and host[0:2] < '\xAC\x20': # 172.16/12
        if not private:
            logger.debug('Ignoring IP address in private range:' + hostStandardFormat)
        return hostStandardFormat if private else False
    return False if private else hostStandardFormat

def checkIPv6Address(host, hostStandardFormat, private=False):
    if host == ('\x00' * 15) + '\x01':
        if not private:
            logger.debug('Ignoring loopback address: ' + hostStandardFormat)
        return False
    if host[0] == '\xFE' and (ord(host[1]) & 0xc0) == 0x80:
        if not private:
            logger.debug ('Ignoring local address: ' + hostStandardFormat)
        return hostStandardFormat if private else False
    if (ord(host[0]) & 0xfe) == 0xfc:
        if not private:
            logger.debug ('Ignoring unique local address: ' + hostStandardFormat)
        return hostStandardFormat if private else False
    return False if private else hostStandardFormat

# checks

def haveSSL(server = False):
    # python < 2.7.9's ssl library does not support ECDSA server due to missing initialisation of available curves, but client works ok
    if server == False:
        return True
    elif sys.version_info >= (2,7,9):
        return True
    return False

def checkSocksIP(host):
    try:
        if state.socksIP is None or not state.socksIP:
            state.socksIP = socket.gethostbyname(BMConfigParser().get("bitmessagesettings", "sockshostname"))
    # uninitialised
    except NameError:
        state.socksIP = socket.gethostbyname(BMConfigParser().get("bitmessagesettings", "sockshostname"))
    # resolving failure
    except socket.gaierror:
        state.socksIP = BMConfigParser().get("bitmessagesettings", "sockshostname")
    return state.socksIP == host

def isProofOfWorkSufficient(data,
                            nonceTrialsPerByte=0,
                            payloadLengthExtraBytes=0):
    if nonceTrialsPerByte < defaults.networkDefaultProofOfWorkNonceTrialsPerByte:
        nonceTrialsPerByte = defaults.networkDefaultProofOfWorkNonceTrialsPerByte
    if payloadLengthExtraBytes < defaults.networkDefaultPayloadLengthExtraBytes:
        payloadLengthExtraBytes = defaults.networkDefaultPayloadLengthExtraBytes
    endOfLifeTime, = unpack('>Q', data[8:16])
    TTL = endOfLifeTime - int(time.time())
    if TTL < 300:
        TTL = 300
    POW, = unpack('>Q', hashlib.sha512(hashlib.sha512(data[
                  :8] + hashlib.sha512(data[8:]).digest()).digest()).digest()[0:8])
    return POW <= 2 ** 64 / (nonceTrialsPerByte*(len(data) + payloadLengthExtraBytes + ((TTL*(len(data)+payloadLengthExtraBytes))/(2 ** 16))))

# Packet creation

def CreatePacket(command, payload=''):
    payload_length = len(payload)
    checksum = hashlib.sha512(payload).digest()[0:4]

    b = bytearray(Header.size + payload_length)
    Header.pack_into(b, 0, 0xE9BEB4D9, command, payload_length, checksum)
    b[Header.size:] = payload
    return bytes(b)

def assembleVersionMessage(remoteHost, remotePort, participatingStreams, server = False, nodeid = None):
    payload = ''
    payload += pack('>L', 3)  # protocol version.
    # bitflags of the services I offer.
    payload += pack('>q',
            NODE_NETWORK |
            (NODE_SSL if haveSSL(server) else 0) |
            (NODE_DANDELION if state.dandelion else 0)
            )
    payload += pack('>q', int(time.time()))

    payload += pack(
        '>q', 1)  # boolservices of remote connection; ignored by the remote host.
    if checkSocksIP(remoteHost) and server: # prevent leaking of tor outbound IP
        payload += encodeHost('127.0.0.1')
        payload += pack('>H', 8444)
    else:
        payload += encodeHost(remoteHost)
        payload += pack('>H', remotePort)  # remote IPv6 and port

    # bitflags of the services I offer.
    payload += pack('>q',
            NODE_NETWORK |
            (NODE_SSL if haveSSL(server) else 0) |
            (NODE_DANDELION if state.dandelion else 0)
            )
    payload += '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF' + pack(
        '>L', 2130706433)  # = 127.0.0.1. This will be ignored by the remote host. The actual remote connected IP will be used.
    # we have a separate extPort and
    # incoming over clearnet or
    # outgoing through clearnet
    if BMConfigParser().safeGetBoolean('bitmessagesettings', 'upnp') and state.extPort \
        and ((server and not checkSocksIP(remoteHost)) or \
        (BMConfigParser().get("bitmessagesettings", "socksproxytype") == "none" and not server)):
        payload += pack('>H', state.extPort)
    elif checkSocksIP(remoteHost) and server: # incoming connection over Tor
        payload += pack('>H', BMConfigParser().getint('bitmessagesettings', 'onionport'))
    else: # no extPort and not incoming over Tor
        payload += pack('>H', BMConfigParser().getint('bitmessagesettings', 'port'))

    random.seed()
    if nodeid is not None:
        payload += nodeid[0:8]
    else:
        payload += eightBytesOfRandomDataUsedToDetectConnectionsToSelf
    userAgent = '/PyBitmessage:' + softwareVersion + '/'
    payload += encodeVarint(len(userAgent))
    payload += userAgent

    # Streams
    payload += encodeVarint(len(participatingStreams))
    count = 0
    for stream in sorted(participatingStreams):
        payload += encodeVarint(stream)
        count += 1
        # protocol limit, see specification
        if count >= 160000:
            break

    return CreatePacket('version', payload)

def assembleErrorMessage(fatal=0, banTime=0, inventoryVector='', errorText=''):
    payload = encodeVarint(fatal)
    payload += encodeVarint(banTime)
    payload += encodeVarint(len(inventoryVector))
    payload += inventoryVector
    payload += encodeVarint(len(errorText))
    payload += errorText
    return CreatePacket('error', payload)

# Packet decoding

def decryptAndCheckPubkeyPayload(data, address):
    """
    Version 4 pubkeys are encrypted. This function is run when we already have the
    address to which we want to try to send a message. The 'data' may come either
    off of the wire or we might have had it already in our inventory when we tried
    to send a msg to this particular address.
    """
    try:
        status, addressVersion, streamNumber, ripe = decodeAddress(address)

        readPosition = 20  # bypass the nonce, time, and object type
        embeddedAddressVersion, varintLength = decodeVarint(data[readPosition:readPosition + 10])
        readPosition += varintLength
        embeddedStreamNumber, varintLength = decodeVarint(data[readPosition:readPosition + 10])
        readPosition += varintLength
        storedData = data[20:readPosition] # We'll store the address version and stream number (and some more) in the pubkeys table.

        if addressVersion != embeddedAddressVersion:
            logger.info('Pubkey decryption was UNsuccessful due to address version mismatch.')
            return 'failed'
        if streamNumber != embeddedStreamNumber:
            logger.info('Pubkey decryption was UNsuccessful due to stream number mismatch.')
            return 'failed'

        tag = data[readPosition:readPosition + 32]
        readPosition += 32
        signedData = data[8:readPosition] # the time through the tag. More data is appended onto signedData below after the decryption.
        encryptedData = data[readPosition:]

        # Let us try to decrypt the pubkey
        toAddress, cryptorObject = state.neededPubkeys[tag]
        if toAddress != address:
            logger.critical('decryptAndCheckPubkeyPayload failed due to toAddress mismatch. This is very peculiar. toAddress: %s, address %s', toAddress, address)
            # the only way I can think that this could happen is if someone encodes their address data two different ways.
            # That sort of address-malleability should have been caught by the UI or API and an error given to the user.
            return 'failed'
        try:
            decryptedData = cryptorObject.decrypt(encryptedData)
        except:
            # Someone must have encrypted some data with a different key
            # but tagged it with a tag for which we are watching.
            logger.info('Pubkey decryption was unsuccessful.')
            return 'failed'

        readPosition = 0
        bitfieldBehaviors = decryptedData[readPosition:readPosition + 4]
        readPosition += 4
        publicSigningKey = '\x04' + decryptedData[readPosition:readPosition + 64]
        readPosition += 64
        publicEncryptionKey = '\x04' + decryptedData[readPosition:readPosition + 64]
        readPosition += 64
        specifiedNonceTrialsPerByte, specifiedNonceTrialsPerByteLength = decodeVarint(
            decryptedData[readPosition:readPosition + 10])
        readPosition += specifiedNonceTrialsPerByteLength
        specifiedPayloadLengthExtraBytes, specifiedPayloadLengthExtraBytesLength = decodeVarint(
            decryptedData[readPosition:readPosition + 10])
        readPosition += specifiedPayloadLengthExtraBytesLength
        storedData += decryptedData[:readPosition]
        signedData += decryptedData[:readPosition]
        signatureLength, signatureLengthLength = decodeVarint(
            decryptedData[readPosition:readPosition + 10])
        readPosition += signatureLengthLength
        signature = decryptedData[readPosition:readPosition + signatureLength]

        if highlevelcrypto.verify(signedData, signature, hexlify(publicSigningKey)):
            logger.info('ECDSA verify passed (within decryptAndCheckPubkeyPayload)')
        else:
            logger.info('ECDSA verify failed (within decryptAndCheckPubkeyPayload)')
            return 'failed'

        sha = hashlib.new('sha512')
        sha.update(publicSigningKey + publicEncryptionKey)
        ripeHasher = hashlib.new('ripemd160')
        ripeHasher.update(sha.digest())
        embeddedRipe = ripeHasher.digest()

        if embeddedRipe != ripe:
            # Although this pubkey object had the tag were were looking for and was
            # encrypted with the correct encryption key, it doesn't contain the
            # correct pubkeys. Someone is either being malicious or using buggy software.
            logger.info('Pubkey decryption was UNsuccessful due to RIPE mismatch.')
            return 'failed'

        # Everything checked out. Insert it into the pubkeys table.

        logger.info('within decryptAndCheckPubkeyPayload, addressVersion: %s, streamNumber: %s \n\
                    ripe %s\n\
                    publicSigningKey in hex: %s\n\
                    publicEncryptionKey in hex: %s', addressVersion,
                                                       streamNumber,
                                                       hexlify(ripe),
                                                       hexlify(publicSigningKey),
                                                       hexlify(publicEncryptionKey)
                    )

        t = (address, addressVersion, storedData, int(time.time()), 'yes')
        sqlExecute('''INSERT INTO pubkeys VALUES (?,?,?,?,?)''', *t)
        return 'successful'
    except varintDecodeError as e:
        logger.info('Pubkey decryption was UNsuccessful due to a malformed varint.')
        return 'failed'
    except Exception as e:
        logger.critical('Pubkey decryption was UNsuccessful because of an unhandled exception! This is definitely a bug! \n%s', traceback.format_exc())
        return 'failed'

def checkAndShareObjectWithPeers(data):
    """
    This function is called after either receiving an object off of the wire
    or after receiving one as ackdata.
    Returns the length of time that we should reserve to process this message
    if we are receiving it off of the wire.
    """
    if len(data) > 2 ** 18:
        logger.info('The payload length of this object is too large (%s bytes). Ignoring it.', len(data))
        return 0
    # Let us check to make sure that the proof of work is sufficient.
    if not isProofOfWorkSufficient(data):
        logger.info('Proof of work is insufficient.')
        return 0

    endOfLifeTime, = unpack('>Q', data[8:16])
    if endOfLifeTime - int(time.time()) > 28 * 24 * 60 * 60 + 10800: # The TTL may not be larger than 28 days + 3 hours of wiggle room
        logger.info('This object\'s End of Life time is too far in the future. Ignoring it. Time is %s', endOfLifeTime)
        return 0
    if endOfLifeTime - int(time.time()) < - 3600: # The EOL time was more than an hour ago. That's too much.
        logger.info('This object\'s End of Life time was more than an hour ago. Ignoring the object. Time is %s', endOfLifeTime)
        return 0
    intObjectType, = unpack('>I', data[16:20])
    try:
        if intObjectType == 0:
            _checkAndShareGetpubkeyWithPeers(data)
            return 0.1
        elif intObjectType == 1:
            _checkAndSharePubkeyWithPeers(data)
            return 0.1
        elif intObjectType == 2:
            _checkAndShareMsgWithPeers(data)
            return 0.6
        elif intObjectType == 3:
            _checkAndShareBroadcastWithPeers(data)
            return 0.6
        else:
            _checkAndShareUndefinedObjectWithPeers(data)
            return 0.6
    except varintDecodeError as e:
        logger.debug("There was a problem with a varint while checking to see whether it was appropriate to share an object with peers. Some details: %s", e)
    except Exception as e:
        logger.critical('There was a problem while checking to see whether it was appropriate to share an object with peers. This is definitely a bug! \n%s', traceback.format_exc())
    return 0

def _checkAndShareUndefinedObjectWithPeers(data):
    embeddedTime, = unpack('>Q', data[8:16])
    readPosition = 20 # bypass nonce, time, and object type
    objectVersion, objectVersionLength = decodeVarint(
        data[readPosition:readPosition + 9])
    readPosition += objectVersionLength
    streamNumber, streamNumberLength = decodeVarint(
        data[readPosition:readPosition + 9])
    if not streamNumber in state.streamsInWhichIAmParticipating:
        logger.debug('The streamNumber %s isn\'t one we are interested in.', streamNumber)
        return

    inventoryHash = calculateInventoryHash(data)
    if inventoryHash in Inventory():
        logger.debug('We have already received this undefined object. Ignoring.')
        return
    objectType, = unpack('>I', data[16:20])
    Inventory()[inventoryHash] = (
        objectType, streamNumber, data, embeddedTime,'')
    logger.debug('advertising inv with hash: %s', hexlify(inventoryHash))
    broadcastToSendDataQueues((streamNumber, 'advertiseobject', inventoryHash))

def _checkAndShareMsgWithPeers(data):
    embeddedTime, = unpack('>Q', data[8:16])
    readPosition = 20 # bypass nonce, time, and object type
    objectVersion, objectVersionLength = decodeVarint(
        data[readPosition:readPosition + 9])
    readPosition += objectVersionLength
    streamNumber, streamNumberLength = decodeVarint(
        data[readPosition:readPosition + 9])
    if not streamNumber in state.streamsInWhichIAmParticipating:
        logger.debug('The streamNumber %s isn\'t one we are interested in.', streamNumber)
        return
    readPosition += streamNumberLength
    inventoryHash = calculateInventoryHash(data)
    if inventoryHash in Inventory():
        logger.debug('We have already received this msg message. Ignoring.')
        return
    # This msg message is valid. Let's let our peers know about it.
    objectType = 2
    Inventory()[inventoryHash] = (
        objectType, streamNumber, data, embeddedTime,'')
    logger.debug('advertising inv with hash: %s', hexlify(inventoryHash))
    broadcastToSendDataQueues((streamNumber, 'advertiseobject', inventoryHash))

    # Now let's enqueue it to be processed ourselves.
    objectProcessorQueue.put((objectType,data))

def _checkAndShareGetpubkeyWithPeers(data):
    if len(data) < 42:
        logger.info('getpubkey message doesn\'t contain enough data. Ignoring.')
        return
    if len(data) > 200:
        logger.info('getpubkey is abnormally long. Sanity check failed. Ignoring object.')
    embeddedTime, = unpack('>Q', data[8:16])
    readPosition = 20  # bypass the nonce, time, and object type
    requestedAddressVersionNumber, addressVersionLength = decodeVarint(
        data[readPosition:readPosition + 10])
    readPosition += addressVersionLength
    streamNumber, streamNumberLength = decodeVarint(
        data[readPosition:readPosition + 10])
    if not streamNumber in state.streamsInWhichIAmParticipating:
        logger.debug('The streamNumber %s isn\'t one we are interested in.', streamNumber)
        return
    readPosition += streamNumberLength

    inventoryHash = calculateInventoryHash(data)
    if inventoryHash in Inventory():
        logger.debug('We have already received this getpubkey request. Ignoring it.')
        return

    objectType = 0
    Inventory()[inventoryHash] = (
        objectType, streamNumber, data, embeddedTime,'')
    # This getpubkey request is valid. Forward to peers.
    logger.debug('advertising inv with hash: %s', hexlify(inventoryHash))
    broadcastToSendDataQueues((streamNumber, 'advertiseobject', inventoryHash))

    # Now let's queue it to be processed ourselves.
    objectProcessorQueue.put((objectType,data))

def _checkAndSharePubkeyWithPeers(data):
    if len(data) < 146 or len(data) > 440:  # sanity check
        return
    embeddedTime, = unpack('>Q', data[8:16])
    readPosition = 20  # bypass the nonce, time, and object type
    addressVersion, varintLength = decodeVarint(
        data[readPosition:readPosition + 10])
    readPosition += varintLength
    streamNumber, varintLength = decodeVarint(
        data[readPosition:readPosition + 10])
    readPosition += varintLength
    if not streamNumber in state.streamsInWhichIAmParticipating:
        logger.debug('The streamNumber %s isn\'t one we are interested in.', streamNumber)
        return
    if addressVersion >= 4:
        tag = data[readPosition:readPosition + 32]
        logger.debug('tag in received pubkey is: %s', hexlify(tag))
    else:
        tag = ''

    inventoryHash = calculateInventoryHash(data)
    if inventoryHash in Inventory():
        logger.debug('We have already received this pubkey. Ignoring it.')
        return
    objectType = 1
    Inventory()[inventoryHash] = (
        objectType, streamNumber, data, embeddedTime, tag)
    # This object is valid. Forward it to peers.
    logger.debug('advertising inv with hash: %s', hexlify(inventoryHash))
    broadcastToSendDataQueues((streamNumber, 'advertiseobject', inventoryHash))

    # Now let's queue it to be processed ourselves.
    objectProcessorQueue.put((objectType,data))

def _checkAndShareBroadcastWithPeers(data):
    if len(data) < 180:
        logger.debug('The payload length of this broadcast packet is unreasonably low. Someone is probably trying funny business. Ignoring message.')
        return
    embeddedTime, = unpack('>Q', data[8:16])
    readPosition = 20  # bypass the nonce, time, and object type
    broadcastVersion, broadcastVersionLength = decodeVarint(
        data[readPosition:readPosition + 10])
    readPosition += broadcastVersionLength
    if broadcastVersion >= 2:
        streamNumber, streamNumberLength = decodeVarint(data[readPosition:readPosition + 10])
        readPosition += streamNumberLength
        if not streamNumber in state.streamsInWhichIAmParticipating:
            logger.debug('The streamNumber %s isn\'t one we are interested in.', streamNumber)
            return
    if broadcastVersion >= 3:
        tag = data[readPosition:readPosition+32]
    else:
        tag = ''
    inventoryHash = calculateInventoryHash(data)
    if inventoryHash in Inventory():
        logger.debug('We have already received this broadcast object. Ignoring.')
        return
    # It is valid. Let's let our peers know about it.
    objectType = 3
    Inventory()[inventoryHash] = (
        objectType, streamNumber, data, embeddedTime, tag)
    # This object is valid. Forward it to peers.
    logger.debug('advertising inv with hash: %s', hexlify(inventoryHash))
    broadcastToSendDataQueues((streamNumber, 'advertiseobject', inventoryHash))

    # Now let's queue it to be processed ourselves.
    objectProcessorQueue.put((objectType,data))

# If you want to command all of the sendDataThreads to do something, like shutdown or send some data, this
# function puts your data into the queues for each of the sendDataThreads. The sendDataThreads are
# responsible for putting their queue into (and out of) the sendDataQueues list.
def broadcastToSendDataQueues(data):
    # logger.debug('running broadcastToSendDataQueues')
    for q in state.sendDataQueues:
        q.put(data)

# sslProtocolVersion
if sys.version_info >= (2,7,13):
    # this means TLSv1 or higher
    # in the future change to
    # ssl.PROTOCOL_TLS1.2
    sslProtocolVersion = ssl.PROTOCOL_TLS
elif sys.version_info >= (2,7,9):
    # this means any SSL/TLS. SSLv2 and 3 are excluded with an option after context is created
    sslProtocolVersion = ssl.PROTOCOL_SSLv23
else:
    # this means TLSv1, there is no way to set "TLSv1 or higher" or
    # "TLSv1.2" in < 2.7.9
    sslProtocolVersion = ssl.PROTOCOL_TLSv1

# ciphers
if ssl.OPENSSL_VERSION_NUMBER >= 0x10100000 and not ssl.OPENSSL_VERSION.startswith("LibreSSL"):
    sslProtocolCiphers = "AECDH-AES256-SHA@SECLEVEL=0"
else:
    sslProtocolCiphers = "AECDH-AES256-SHA"

redpajama_set_name: RedPajamaGithub


16kW Reverse cycle, air to water, inverter heat pump units. More than 400% efficient.
The heat pump is reverse cycle and can provide hot water for heating and chilled water for cooling.
Prices for the Heat Pump start from $9,350. Please contact us for a full and detailed quote.


text:
Latest Name (A - Z) Name (Z - A) Price (Low > High) Price (High > Low)
Quick Product View
A Territorial Force Efficiency Medal, GVR bust, awarded to Sapper R.H. Fry, Devon Fortress Royal Engineers, when he was awarded the Territorial Force Efficiency Medal in Army Order No.101 of April 1914. He is one of only 21 GVR bust TFEM's to the unit. Fry went on to see servi...
A Great War and Police Special Constabulary long service group awarded to Private C.F. Payne, Suffolk Regiment, later a Special Constable with the Police Special Constabulary.
An Indian Army Long Service and Good Conduct Medal, GVI 1st type bust, awarded to Sepoy Muhammad Zaman, 7th Rajput Regiment, Indian Army.
A Efficiency Medal, GVI 1st type bust, Territorial suspension, awarded to Private W. Robertson, Devon Regiment and Territorial Army.
A Volunteer Force Long Service and Good Conduct Medal, Victoria Regina bust, engraved naming, awarded to Bombardier H. Kendall, 2nd Devon Volunteer Artillery, Western Division, Royal Artillery, Volunteer Force, who was awarded the Volunteer Force Long Service and Good Conduct ...
A Regular Army Long Service and Good Conduct Medal, EIIR Dei.Grat. bust, awarded to Corporal J.H. Wyatt, Royal Electrical and Mechanical Engineers.
The Gas Light and Coke Company Faithful Service Medal, silver, mounted as issued on the Gaunt of London wearing pin.
A Second World War and Police long service pair awarded to Constable Kenneth A. Payne, United Kingdom Police.
A Voluntary Medical Service Medal, silver issue, with three additional five year service award bars, awarded to Miss W. May Cranch, who served for at least 30 years with the Voluntary Medical Services.
A fine Great War 1914 Old Contemptible, Waziristan 1921 to 1924 and long service group awarded to Acting Warrant Officer 2nd Class later Lieutenant G.S. Cockburn, Royal Army Service Corps, who saw service out on the Western Front from 13th August 1914 with the 1st Cavalry Div...
A Rocket Life Saving Apparatus Volunteer Long Service Medal, GVIR 2nd type bust with Rocket Apparatus reverse (1942-1953 issue), awarded to George Edward Martin for 20 years service with the Rocket Life Saving Apparatus Volunteer's.
An Army Long Service and Good Conduct Medal, Victoria small letter reverse, awarded to Colour Sergeant John Catlin, 89th Princess Victoria's Regiment of Foot, who saw service between 1858 and 1879, of which 11 years was spent in India, and was awarded the long service medal in...
Buy Long Service Medals Medals & Militaria online.
We are specialist UK medal dealers in Long Service Medals Medals & Militaria.
From our online shop you can buy, sell or exchange WWI - WWII War Medals.
We are the leading stockist of items covering campaigns from all periods (Boer War, Burma War, Crimean War, Iraq War etc..).
We carry an extensive selection of war medals for sale and and general militaria from both Great Britain and around the world.
View our latest Stock

redpajama_set_name: RedPajamaCommonCrawl


Your search ends with us if you're in the market for a new Ford car, SUV or truck in Boise, ID!
Take a look below to find that we maintain a healthy selection of new Ford vehicles that are affordable, efficient and family friendly. Pay us a visit here in Boise to test drive a new Ford Edge, Escape, Explorer, F-150, F-250, F-350 or any car that meets your driving needs!
Ford's secret to success is hardly a mystery to savvy shoppers throughout Caldwell, Eagle, Meridian and Nampa. After all, Ford has always been committed to safety, road-tested durability, family friendly features and technological innovation. You'll find evidence of those appealing qualities by driving any of the new cars found below!
If you're like us then safety is your paramount concern when choosing a new car. Luckily for you, Ford always comes through in that regard. Most Ford vehicles are available with a variety of safety features like lane departure warning, forward collision warning and Ford's Blind Spot Information System (BLIS). These next-gen safety features work in harmony to provide for your safety behind the wheel!
We know that there's a new Ford vehicle for every driver and lifestyle around Boise, ID. If you need a capable and comfortable ride, then a Ford Focus, Escape or Explorer is the best car for you! If you need a hard-working pickup, you'll always get the job done with a Ford F-150, F-250 or F-350. If you crave heart-racing power and high-performance, then a Mustang will satisfy your need for speed!
Whether it's a crossover, sedan or SUV, you'll always enjoy a first class ride in the Ford vehicle of your choice. Each Ford vehicle has been thoughtfully designed to provide maximum comfort, ample passenger room and a wealth of storage space for your cargo-carrying demands. Fords are also home to a generous array of tech features like Ford's SYNC infotainment with Apple CarPlay and Siri Eyes Free. Depending the model, additional options include a Sony sound system, push-button start, a rearview camera, navigation and much more!
As you can see, there are many compelling reasons to make your next car a Ford. Of course, Lithia Ford of Boise is the best place for shoppers to find the car of their dreams. Now, take a few moments to browse our current inventory before visiting our Boise, ID showroom to get started on a test drive today!
Price does not include taxes, title, license and $299 Dealer Doc Fee.
Price does not include taxes, title, license and $349 ($299 Boise Ford) Dealer Doc Fee, (in CLOSE PROXIMITY to the price).


text:
- All categories -Green meetingsIndustry News and LeadersMontréal PartnersSporting eventTourisme Montréal: News and PeopleTrends and TechnologyWhat's New in MontréalWorking Smarter
Montréal leads in cardiology research and technology
Trends and Technology What's New in Montréal
Montréal is recognized internationally for a number of specific innovative sectors. For instance, we are a global leader in aerospace technology. When it comes to life sciences, Montréal ranks first in Canada. The city has more than 12,000 researchers and professionals across no less than 150 locations of private and university research. Cardiology is — pardon the pun — at the heart of much of the research achieved in Montréal.
THE MONTRÉAL HEART INSTITUTE
Cardiology is a branch of medicine dealing with disorders of the heart as well as parts of the circulatory system. In the Montréal region, much of the research is being achieved by our post-secondary institutions, such as McGill, Sherbrook and Laval universities.
Affiliated with the Université de Montréal, the Montréal Heart Institute (MHI) is dedicated to care, research, teaching, prevention, rehabilitation, and the assessment of new technologies in cardiology. MHI became the first hospital in North America where patients can benefit from a GPS system that lets cardiologists accurately navigate the heart during procedures to treat cardiac rhythm disorders.
The institute is also a world leader in the Ross procedure, which consists of a diseased aortic valve replaced with the person's own pulmonary valve. Since the inception of the program four years ago, nearly 200 interventions have been completed.
Also notable, the EPIC Center at the Montreal Heart Institute is the most comprehensive centre encouraging healthy lifestyle. It's the largest cardiovascular disease prevention centre in Canada.
RECENT BREAKTHROUGHS IN MONTRÉAL
April 2017. The MHI launches the observatoire de la prévention, the First Digital Information Platform of its kind in the world.
March 2017. DalCor's Phase 3 Cardiovascular Trial, dal-GenE, exceeds targeted enrollment schedule.
February 2017. First Canadian electrophysiology laboratory equipped with robotic magnetic navigation system dedicated to patients with Congenital Heart Diseases.
December 2016. MUHC scores medical world first in new TrapLiner heart surgery technology.
September 2016. The Institute opens its Cardiovascular Genetics Centre — an important step towards personalized medicine.
October 2015. The Montreal Heart Institute ranks first in Research Infosource's prestigious "Canada's Top 40 Research Hospitals List".
January 2013 The Montreal Heart Institute designated as a North American Center of Excellence for its work with percutaneous treatment of mitral valve failure.
RECENT AND UPCOMING CARDIOLOGY EVENTS IN MONTRÉAL
May-June 2017. Symposium Montréal Live: Heart Team Summit Montréal Live 2017 Advanced — interactive discussions in an open and easy context for clinicians and their colleagues.
October 2016. Canadian Cardiovascular Congress
October 2016 I2C 2016 Summit Innovations in Interventional Cardiology
October 2015 American College of Chest Physicians CHEST Conference
Submit your RFP and start planning your event today!
Mtl in words
Mtl in pictures
Passeports Montréal
MTL à TABLE


If you see these hashtags on Twitter, that's what's up!
What an amazing crowd. So many passionate women, and more than a few amazing men allies. My darling Teri helped me practice, the entire drive out to Detroit (Thank you, Park Bar, for having us, and thank you, Tigers fans, for letting us finish our Eunice the Uterus cookies and sharing your post-game haunt with us – oh, and congratulations on the division championship you missed that night, but got today!). And the energy and spirit of community in that room was so wonderful, and I just know that, in moments, we both made friendships that will change our lives in unforeseeable ways for many years to come. One of the best parts of the evening, too, was the realness of the stories. Two women got up and bravely told of their personal experiences with abortion and why preserving women's reproductive freedom mattered to them. I know, already, Teri wants to speak in the future and share her own unique story of how reproductive rights affect her as a woman who cannot bear children, even if she wanted to do so.
Continue reading, please, below, for what I had to say! Also please check out the national Lady Parts Justice campaign. Contribute with your voice, your exam gown selfies, your financial contributions, and maybe even by hosting an LPJ event in your hometown. I promise you, surround yourself with other passionate women, and you will not regret it.
This is just a cell phone quickie picture, you really had to be there to capture the energy, though!
Thank you so much for inviting me to be a part of this night. Aren't these some amazing women all around us?
As a woman, as a transgender woman, as a lesbian woman, as a professional woman, I want to take these few minutes to ask you to think about two concepts that, at first, seem like they are incompatible, but on closer examination, say something powerful about why I'm here, why you're here, why that should embolden all of us and our allies, and why that should scare some people out there, who hold a dim view of womenfolk. The two concepts are these: that none of us choose to be women, and that all of us choose to be Women.
As women, we're acutely aware of the many, many times we do not have choices. We don't choose to make $0.74 on the dollar. We don't choose to be the targets of sexual violence, or to be much more likely than men to experience partner violence over the course of our lives. We don't choose to live in a patriarchal system in which it seems like every man has more of a say over our own bodies than any of us do, ourselves. We don't choose to be underrepresented in legislatures or board rooms. We usually don't choose to get things mansplained to us (because, seriously, who loves that?). We don't choose any of the baggage that society loads us up with. And baggage is a really polite word. Maybe too ladylike for this fierce crowd, although I don't want anyone here to apologize for being a lady, and I certainly won't.
Now, my path to womanhood is probably a bit different than most of yours. But, although my path involved many years of hiding until I became brave enough to tell the truth, like you, a woman was what I was always meant to become. So, I do want to emphasize, I didn't choose to be a woman either (although, I kind of love it. I hope you do, too?). And I'm thankful that sisters like Lizz Winstead, and so many people who've been so supportive of me through transitioning and coming out, get that. And on the topic of sexual diversity among our sisters, I didn't choose that, when my Prince Charming finally arrived to hold the door open for me, she would be a she. And yet, here I am, and here she is, too (and I am so thankful for you, Teri!). So, we don't choose the particulars of our womanhood, and really, we didn't choose our womanhood at all. It chose us. Which just means, I guess, that someone up there must kind of like us.
But here's the thing. Tonight, here, in this bar, alongside our sisters, and all across America, from V to Shining V, we are choosing to be Women. I am. You are. We're choosing to extend our definition of womanhood beyond our anatomy and physiology, to accept our place in womanhood as a political class, and to show the world that united womanhood is a force to be reckoned with. Here tonight, and everywhere we do it, these acts of defiance – showing solidarity and taking other women's hands, across racial and ethnic lines, across socioeconomic lines, across queer/straight lines – these everyday choices to be Women advocates let us work together. These choices let us leverage the fact that we are the majority, that the world wouldn't run without us, and certainly that the world wouldn't be much fun without us, to create positive change for everybody. When we make this choice and stand tall as Women together, we refuse to let our enemies get away with their old tricks of dividing and conquering us, of driving wedges between us so we fight each other instead of fighting oppression and injustice. And, if each of us stands firm in this choice, and we get another sister, and another, and another to join us, and we get our brothers to join us, and our siblings outside the gender binary, too (I love our allies), well, just let them try to take our rights.
Now, let me admit, it may be hard, for all of us, because we're not all the same. To make this work, we're all going to have to get out of our comfort zones and take the hands in partnership of women who don't look like us, who don't share all of our experiences, about whom it would be really easy to say, "She's got nothing in common with me." I think it goes both ways – we've got to stop thinking about other women as less than us, and we've also got to start supporting women when they use their privilege to make things better for womankind. So that sister, she does have something in common with you, because she, too, is choosing to be a Woman. Please, get to know her. Take her hand, help her be stronger, and let her help you be stronger. If you're rich, take the hands of a poor woman. If you're black, take the hands of one of your Asian sisters. If you're straight, take my queer woman's hand. And let's continue to do the hard work that makes this a movement that leaves no woman behind.
So, there it is. Although none of us chose to be women, we are all choosing, together, to be Women. And thank YOU for that!


Sihanoukville in Cambodia is famous for its beaches. They vary widely from pristine to heavily polluted so it is important to know where to go. Below will provide some information to help you choose the beach for you.
On the particular day that we headed out in Sihanoukville to show you the beaches, it was quite overcast, windy and a little rainy. The best thing about a South East Asian beach is that even when it is raining, the ocean is still warm.
Victory Beach is at the bottom of Victory Hill on the western side of town in Sihanoukville. There are plenty of budget accommodation options available close by which makes this place quite the tourist attraction. It is the closest beach to the port where cruise liners stop for a day or two. A fancy Airport themed restaurant, amongst other restaurants and shops, sits right on the beach front. The beach sand wasn't too dirty although there was certainly a lot of larger rubbish items around.
Hawaii beach in Sihanoukville seems to be geared towards local Khmer tourists with plenty of deck chairs and tables to hire and sit at for the day. It is a lovely looking beach with a lot of sand to spread your towel at on all day, however, again, there seems to be a lot of rubbish on the beach. Empty beer bottles, cigarette butts and plastic bags scattered everywhere. It is a pity as this beach is quite lovely to look at. The water is pretty, and the view of a bridge on one side and a jetty on the other.
Independence Beach in Sihanoukville is a little out of the way for most people but it has at least two kilometres of beautiful swimming and beach sand to sit on. The public beach is located right next to a hotel complex that seems to keep the beach clean. Apart from the very clean beach, there is a lot of shade by trees, and fantastic paved picnic areas. This is a lovely beach.
Sokha Beach in Sihanoukville, Cambodia is a tiny little beach right next door to a fancy resort. The beach sand is pristinely clean, the water is lovely and the shade of the trees and the grassy areas gives it a nice family friendly feel to it. There isn't a lot around this beach apart from the fancy resort but if you walk a few minutes you will reach some restaurants and little stalls selling drinks.
Serendipity Beach in Sihanoukville is on one side of the two main touristy beaches on offer in Sihanoukville. It is an extremely rocky beach area with little sand for sitting on. There are a number of bars and restaurants that open right up to the beach sand so it is perfect for dining and gazing into the ocean. There are a lot of hawkers and beggers that walk the path way of Serendipity beach.
Ocheuteal Beach in Sihanoukville is joined to Serendipity Beach and is much busier. Ochheuteal Beach is the hub of tourist action. Restaurants and bars compete for your patronage offering very cheap drinks and meal deals throughout the day and night. Children are often seen trying to sell bracelets to people on the beach. There is quite a lot of theft here also. Leave everything locked up in your room if you are planning on coming here for a swim. The beach is heavily polluted from the restaurants and bars. Cigarette butts litter the beach sand and ocean.
Otres Beach in Sihanoukville is where you head to when you want clean beaches and not to be bothered by hawkers. Although, there is still a little bit of rubbish around and you will be hassled by the odd hawker. It is nice though. You can find a lot of nice bars and restaurants who are a lot more laid back than at the other touristy beaches. Which is very nice. The only problem is that it is quite far out of town so you either need to walk a good 60 minutes, ride a bicycle for 30 minutes or pay a tuk tuk driver to drive you 15 minutes. It is a lovely beach.


Not long had my smart hub and am having issues with my WD my cloud being seen by my Samsung TV.
If I restart the hub my TV sees it but if I turn the TV off and on again it won't see it.
When I check the devices on the hub its showing as connected, but there is also a WD mycloud home showing up in the list, but not connected, which I have unplugged as it had to be rma'd.
Is there a way to remove the disconnected drive from the device list as I'm not sure if I'm getting a conflict.
Yes, there's a Remove button on each item in the list of devices. Are you looking at it under Advanced Settings? Home things are pretty limited.
Which my cloud you using? (I have a 3tb version). I also have a Samsung smart TV.
Have you checked that your Ethernet doesn't have a powersave option?
It's the mycloud, was working fine on my old net gear router and the mycloud home was working well using plex but it packed up after 3 weeks so have sent it back.
I've tried removing devices but there is no way to do it as far as I can see, looked everywhere including under advanced.
There must be a way. It's on my SH. Post an image of what you are looking at.
Very odd it keeps losing the drive when hard wired.


text:
LM19 Tank Transporter era un sistema composto dal trattore M20 Diamond T Model 980 o Model 981 da 12-ton e dal rimorchio a 12 ruote M9 usato durante la seconda guerra mondiale e una volta concluso il conflitto fino alla fine degli anni '50. Ne sono stati prodotti 6.548 esemplari che furono impiegati dagli alleati su tutti i fronti di guerra. Durante la seconda guerra mondiale nell'US Army venne affiancato dall'M25 Tank Trasporter mentre nelle forze armate britanniche venne sostituito dal Thornycroft Antar all'inizio degli anni '50 anche se pochi esemplari furono utilizzati fino a tutto il 1971.

Trattore M20

Progettato come trattore per il trasporto di carri armati il Diamond T980 con cabina solida era prodotto dalla Diamond T di Chicago. Nel 1940 la commissione di acquisto britannica era alla ricerca di equipaggiamenti per il British Army e tra questi anche di un mezzo che potesse trasportare i nuovi carri grandi e pesanti. La commissione contattò diversi costruttori di veicoli e tra questi anche la Diamond T che già all'epoca aveva una lunga storia di forniture di camion militari per le forze armate statunitensi. La società aveva da poco completato un prototipo di un veicolo pesante per l'US Army che, con poche modifiche, poteva soddisfare anche i requisisti britannici. Venne quindi firmato un ordine iniziale per la produzione di 200 esemplari. Il risultato fu il Diamond T 980 da 12-ton con trazione 6x4 a cabina chiusa. Il motore era un Hercules DFXE diesel aspirato da  di cilindrata che sviluppava  a 1.600 giri al minuto. Il motore era inoltre dotato di una grande coppia, 902 Nm (665 libbra forza*piede) a 1.200 giri al minuto, che gli permetteva di trainare fino a 52 tonnellate (115.000 libbre) e che si dimostrò capace di soddisfare pienamente il compito di muovere i più pesanti carri dell'epoca. Fu uno dei pochi camion tattici dotati di motore diesel ad essere impiegato dall'US Army durante la seconda guerra mondiale. La trasmissione aveva una frizione a due dischi con molle che agiva su una trasmissione principale a quattro marce ed una secondaria a tre velocità. La trasmissione principale aveva una prima marcia corta mentre gli altri tre rapporti erano adatti per la marcia su strada con la quarta marcia diretta. La trasmissione secondaria invece aveva una marcia ridotta, una diretta e l'ultimo rapporto era del tipo overdrive. La marcia ridotta veniva usata fuoristrada mentre gli altri due rapporti in pratica finivano per raddoppiare le tre marce lunghe della trasmissione primaria ottenendo un totale di sei rapporti. Il moto veniva trasmesso ai due assi posteriori per mezzo di una doppia riduzione Tinken con un rapporto di trasmissione finale di 11.66:1.
Il telaio dell'M20 era del tipo a scala rivettato con tre travi interne che si univano ai due longheroni esterni a tutta lunghezza. Le sospensioni anteriori erano a balestra mentre quelle posteriori avevano delle balestre disposte in tandem con un braccio centrale. Il passo di  misurato dalla linea centrale tra i due assi posteriori. Era stato anche montato un gancio dalla capacità di 52 tonnellate sulla traversa posteriore ed un secondo era stato montato su quella anteriore in modo da poter essere utilizzati per posizionare il rimorchio. Tutti i modelli erano dotati di cerchioni assemblati dotati di pneumatici 12.20x20.20 in. Venivano anche montate sugli assi posteriori delle gomme accoppiate adatte per la neve o il fango.
I freni erano ad aria compressa e venivano usati su tutti gli assi. I freni del rimorchio potevano essere usati in maniera indipendente rispetto a quelli di servizio. Era presente anche un freno di parcheggio a disco singolo che agiva sulla trasmissione agendo per mezzo di quattro elementi di attrito che venivano attivati per mezzo di un meccanismo a cavo singolo montato a  dietro la trasmissione ausiliaria.
Era stato montato dietro alla cabina anche un verricello prodotto dalla Gar Wood della capacità di  e con un cavo di .
Il verricello del Model 980 era stato pensato principalmente per trascinare a bordo del rimorchio i carri danneggiati. Nel 1942 venne introdotto il Model 981 che aveva un verricello con  di cavo che poteva essere utilizzato per il recupero sia verso la parte anteriore che posteriore del trattore.
I veicoli di produzione iniziale mantenevano la cabina del camion commerciale da 4-ton G509. Nell'agosto del 1943 questa cabina venne sostituita con una cabina aperta con tetto in tela. Il muso era composto da due cofani laterali che si aprivano a farfalla ed avevano aperture per il raffreddamento sui lati. Dietro al verricello era stato posizionato un cassone che aveva sui lati dei compartimenti chiusi per gli attrezzi. Sulla parte frontale del cassone erano stati realizzati altri due compartimenti aperti mentre nella parte posteriore era presente una paratia incernierata verso il basso. Nella parte frontale del cassone venivano montate anche le ruote di scorta. Il cassone poteva contenere fino a  di zavorra per aumentare la trazione sugli assi posteriori.

Il rimorchio M9

Il rimorchio aveva una coppia di assi posteriori ed una anteriore montata su un carrello orientabile. Dei rulli guida cavi permettevano al verricello del trattore M20 di trainare il carro sul rimorchio che veniva fissato con catene e blocchi di legno. Le rampe erano incernierate nella parte posteriore del rimorchio e il veicolo veniva caricato per mezzo del verricello del trattore M20. Le sospensioni del carrello anteriore erano a bracci longitudinali con molle elicoidali. Ogni lato del carrello disponeva di un suo asse con montata una doppia coppia di ruote per un totale di 8 ruote. Gli assi posteriori erano quattro per un totale di 16 ruote ed avevano sospensioni a perno centrale. I cerchioni erano del tipo assemblato con misura 8.25x15 in. La produzione del rimorchio iniziò nel 1941 e il primo lotto raggiunse la Gran Bretagna nel 1942.

Impiego

Gli M19 furono subito utilizzati in Nord Africa dove, nonostante le dure condizioni ambientali, si dimostrarono un sistema di recupero affidabile e adeguato al compito. Ne sono stati costruiti 6.548 fino alla fine del 1945 e trovarono impiego su tutti i fronti nei quali erano impegnate le forze alleate. Circa 620 esemplari furono forniti all'Armata Rossa. Nell'esercito britannico, che ne ricevette 1.000 esemplari, li mantenne fino alla loro sostituzione con lAntar avvenuta negli anni '50. Alcuni esemplari sono stati utilizzati fino al 1971. Gli esemplari ceduti come surplus sono stati utilizzati da società britanniche specializzate per i trasporti eccezionali.

Alcuni esemplari vengono attualmente utilizzati nei raduni di veicoli storici. Nell'US Army iniziò ad essere sostituito già nel 1944 dal sistema M26. I veicoli non più utilizzati per il trasporto dei carri venivano utilizzati, con successo, per il trasporto delle munizioni.

Nell'esercito britannico il veicolo era designato Diamond T Tractor 6x4 for 40 ton Trailer e con Model 980 o Model 981 si distinguevano due modelli. La differenza era costituita dalla possibilità di traino. Il Model 980 poteva usare il verricello solo dalla parte posteriore mentre il Model 981 poteva trainare anche dalla parte anteriore. Questa nuova possibilità, che era stata richiesta espressamente dai britannici, era stata aggiunta per mezzo di un sistema di rinvii che permettevano di inviare il cavo verso la parte anteriore del veicolo. I rimorchi di produzione britannica erano conosciuti come 40-ton Trailer British Mk.I (Crane) o come 40-ton Trailer British Mk.II (Dyson) a seconda se erano prodotti dalla società Crane di Deleham o dalla R.A. Dyson and Company di Liverpool. Durante gli anni '50 su diversi Diamond T in servizio con le forze armate britanniche venne sostituito il motore Hercules con il Rolls-Royce C6NFL-134 da 12,2 l a benzina

Note

Altri progetti

Veicoli militari britannici della seconda guerra mondiale
Veicoli militari da trasporto
Veicoli militari statunitensi
Veicoli militari della seconda guerra mondiale

redpajama_set_name: RedPajamaWikipedia


Greek police say an air force non-commissioned officer has set fire to his apartment, killing himself and his 8-year-old twin boys.
Greece's fire service said Saturday that the father and his children were found unresponsive because of the smoke that overwhelmed them and declared dead upon arriving at a hospital.
Police who searched the apartment said they found a note scrawled on the wall with a felt pen, reading "I'm tired of you all" as well as several post-it notes, including a rant against the man's stepfather-in-law.
The 43-year-old man had been divorced from his wife, who recently had been granted custody of the twins. The children were on scheduled visit with their father.
Police say the man had locked the door to the children's bedroom so they couldn't escape.


text:
Miro feat. Massimo Urbani - Passion N...
Miro feat. Massimo Urbani - Passion Night (12" Vinyl) | Disco Segreta (DSM013)
A1 Original 1987 Version
A2 Miro Smooth Jazz Radio Edit
B1 Julyo Remix
Disco Segreta teams up again with Miro (b. Mario Baldoni) in the re-release of his 1970s-80s productions, after the italo-disco burner Stranamore by Brina (DS M 002) and the tropifrutti balearic italo-house smasher Tobago by Pat & Pats (DS M 006), we are back introducing to italo-disco connoisseurs a truly atomic jam !
"Passion Night" was originally written by Miro in 1985. Story goes that envisioning a release by 1987, Miro teamed up with legendary south-african sound engineer Allan Goldberg, in light of their previous Vedette Records disco-infused collaboration for the "Slang" studio project and the "Real Life Games" LP. The team featured also track co-writer Gregorio Puccio, ready to unleash the synths (Roland JD800 + D50, Yamaha DX7, Oberheim 12, Prophet 5), along with two young vocalists, Giulia Fasolino and Silver Pozzoli, later to become household names for the italo-disco heads.
As a special feature on the track, Miro brought in the studio contribution of the top italian jazz contralto saxophone virtuoso of the era, Massimo Urbani.
In September 1987 a session at Pomodoro Studio had the track recorded on a 24 tracks tape, where has been sitting unreleased for 35 years, until now !
Within its cross-genre blend of synth-pop, italo-disco and jazz, "Passion Night" is an outstanding musical time capsule, a picture-perfect vivid snapshot of year 1987, with the additional historical value as a document itself: it's the only strictly non-jazz project in Massimo Urbani's repertoire, in a revelatory performance shedding a light over an unusual facet of Urbani's versatile talent, regardless of boundaries, a few years before his untimely passing.
Three years in the making for this first-ever release, so that we could bring you "Passion Night" in its original 1987 version from the actual multitrack master, with our usual respectful treatment, plus three remixes: the balearic infused "Miro Smooth Jazz Remix" and a remix by highly acclaimed musician and producer Giulio d'Agostino aka Julyo, who can claim a plethora of collaborations for artists as diverse as Aphex Twin, Goldie, and Michael Brecker.


STINGER provides customized, strategic plans based on your specific situation and goals. Whether you partner for full outsourced business solutions, or become eligible for financial support, STINGER will function as an extension of you. Connect with STINGER and get your business on the path to success so you can focus on what you do best.
ARE YOU INTERESTED IN ELEVATING YOUR BUSINESS?


text:
Asia Fish O-stuff Sharks
Details Are Spotty on the Ocellated Angelshark
I've already argued for a spider being "cute", but I think the battle for the ocellated angelshark will be easier.
For instance, it looks like it has worried eyebrows or is fast asleep with big nostrils, and in both cases seems to have huge, backwards-pointing bunny ears.
The "angel" part of its name also earns some adorable points, but what about the rest of it?
Well the "ocellated" part refers to the "ocelli", small and simple eyes, or eye-like coloured spots you'd find on peacock feathers or butterfly wings. A quick look at the featured image and you'll "spot" that it doesn't have any, but much like the specimen itself, they were lost over time. Unlike said specimen, the spots never turned up again, and in life they're one of the main things that set it apart from the rest of the angel sharks, or Squatinidae.
When very much alive and gliding over the sand, the ocellated angelshark has three pairs of large black spots: two on each pectoral or front fin, and another one either side of its tail. It also has the smallest mouth and closest-set eyes in its family, as well as some fancy nasal flaps.
The chaps are ready for love once they hit a body length of 85 cm (2.7 ft), but the ladies wait until they hit about 1 metre (3.2 ft), and the ruler-length pups don't pop out of Mum until they've snacked on some yolk. Among the few adults we've caught, we've collected a range of colour combos too.
The South China Sea is where the ocellated angelshark calls home, and while a local catch from Hong Kong was dark brown, a Taiwanese equivalent was a velvety grey. The Vietnamese catch, on the other hand, was light brown with rusty star-speckles all over its back. So it's either a possible regional variation, or different methods of keeping them fresh.
It's found off the coast of northern Malaysia too, and prefers to shuffle in the sands 100-300 metres (328-984 ft) down near the continental shelf. With eyes on top of its flattened head, it's well suited to concealing itself in the sand until unsuspecting prey flickers overhead. While it has some electroreceptor pores dotting its face and underside like freckles, there're fewer than in other shark families, so it's possible that, despite burying itself and then attacking in a flurry of sand, it uses its sight more than its fancy shark electrodetection system. Its eyesight is definitely better than ours when it comes to identification.
Isn't that fish-ist?
Angelshark (Squatina squatina) by Philippe Guillaume
At a quick glance, the ocellated angelshark resembles a ray, but it's frequently mixed up with other members of its family too, especially when several species congregrate in a particular region. Their angel-like design must be working somehow, because there's very little variation between them, and the original descriptions of the species were pretty lacklustre, making it even more difficult to discern them and their status.
Another thing the angel shark has been mistaken for? A cure for various Roman and mediaeval ailments.
Until sometime in the Middle Ages, Roman scholar Pliny the Elder's work Natural History was the authority on all things, er, natural, and he claimed the skin of an angel shark was good for dusting, acne, and rather bizarrely, swollen breasts. 1700 years later, and the Gentleman's Magazine had us believe that a mummified angel shark or "Jenny Haniver" touring the country was a ferocious sea dragon, caught off the Suffolk coast by an unlucky man who lost an arm to its bite. Fortunately, the author of the Natural History of British Fishes, Edward Donovan, wasn't fooled.
This happy little shark was featured in said book, so he knew what he was talking about. Image courtesy of Rawpixel.
Angel sharks have teeth so a bite or two isn't quite as ridiculous, but attacks are rare and usually an act of self-defence. And while we're long past accusing them of devouring limbs or curing illnesses, angel sharks are still under threat.
Wrangle with care
Living in relatively shallow waters puts you at risk of fishing trawlers, and angel sharks are frequent victims of by-catch as a result, not least because they fancy chomping on the same fish. According to the Shark Trust, holding one by its fins or tail isn't just impolite, but can put immense pressure on its internal organs, and blithely flinging it back overboard also wouldn't do much for its well-being. Instead, they recommend placing a sea-water soaked towel over its eyes to stop it thrashing in a panic, and supporting its belly while gently lowering it back into the water. This is more aimed at the endangered Mediterranean and Atlantic species, but given the similarity, it probably holds true for the ocellated angelshark too.
We still don't know all that much about it, so more research is needed before we can say definitively if it's in trouble. In any case, it's probably best to err on the side of caution with a shark, regardless of the situation.
Latin: Squatina tergocellatoides
What? Ray-like shark with distinctive fin dots and nasal flaps.
Where? From 100-300 metres / 328-984 feet deep in the South China Sea around Taiwan and Malaysia.
How big? Total length of about 1 metre / 3.3 feet.
Endangered? Listed as Vulnerable, due to risk of by-catch.
Probable motto: I'd rather not end up a literal angel, thanks.
They look quite sweet. Do they need my help at all?
We have such little information to go on, we're not entirely sure of its status or population, so there are no conservation drives at the moment. However, some of its Mediterranean and Atlantic relatives are in desperate need of protection, so the Shark Trust and the Angel Shark Conservation Network look out for their interests.
"About angel sharks". No date. The Shark Trust.
"Best practice guide to catch and release". 2017. Angel Shark Conservation Network.
Carpenter, Kent E. No date."Squatina tergocellatoides Chen, 1963". Fishbase.se.
Editors of Encyclopaedia Britannica. No date. "Angel shark". Britannica.com.
Edmonds, Molly. No date. "How angel sharks work". How Stuff Works.
"Ocellated angelshark". No date. Planet Shark Divers.
Ruickbie, Leo. 2016. "The impossible zoo: an enyclopedia of fabulous beasts and mythical monsters". Robinson.
Theiss, Susan M., and Ebert, David A. 2013. "Lost and found: recovery of the holotype of the ocellated angelshark, Squatina tergocellatoides Chen, 1963 (Squatinidae), with comments on western Pacific
squatinids". Zootaxa 3752 (1):73–85.
Walsh, J.H. & Ebert, D.A. 2009. "Squatina tergocellatoides. The IUCN Red List of Threatened Species" 2009: e.T161525A5443604.
"What are angel sharks?" No date. Angel Shark Conservation Network.
Featured image credit: "Dorsal view of Squatina tergocellatoides holotype, immature female, 625 mm TL (original description), 603 mm TL (present study)". Photograph by D. Ebert.
#angel sharks#ocellated angel shark#ocellated angelshark#Squatina tergocellatoides
← It's Hard to Keep Things Straight With the Ninki-Nanka
The Palau Fantail Has Been Through the Wars →
One thought on "Details Are Spotty on the Ocellated Angelshark"


That was the cultural drawback. If that startled you, then this would shock you. Sanitary pads were introduced in the Indian market to give women a chance to have a worry-free period, by shifting them from using cloth pads to disposable sanitary napkins. But no one thought about what happened to them after use? The sanitary napkins made way to landfills, clogging our environment due to their slow degenerative property and the numbers will blow your mind! Problems are just getting worse day by day! But there are a group of women who have taken it upon themselves to create a change and liberate women, of the shame and awkwardness.
EcoFemme is a for-profit organization based in the innovation hub of Auroville, Tamil Nadu. It was started by a Kathy Walkling and Jessamijn when they shifted to India. EcoFemme makes washable cloth pads in various packages and types and has initiated the Pad for Pad program. In my chat with EcoFemme, Kathy Walkling talks about their multi-fold impact model – menstrual hygiene, menstrual education and sustainable livelihood, their experience while broaching this subject among Indian women and the impact of disposable products on the environment.
A single sanitary napkin is equivalent to 4 plastic bags and every woman uses 10 of these every month and multiplied by 12 months of the year and 355 million women of reproductive age. The numbers blow your mind!


Tony_Stewart_Mobil_1_iPhone_6_Rugged_Case http://images.fanatics.com/lf http://dmimages.ff.p10/chains/2411404.txt false We are unable to customize this item with the text you have entered. Please try a different entry again. Your current entry cannot be processed due to guidelines for past and present player names. Please create a new entry.


text:
Jerusalem Post Middle East
Iraq: Police say woman suicide bomber kills 3, wounds 12
A female suicide bomber detonated an explosives vest packed with ball bearings Wednesday near a bus terminal northeast of Baghdad and killed at least three people, including one policeman, the police said. The blast, which also wounded 12 people, was apparently targeting a police patrol in a commercial area in Balad Ruz, according to a senior police officer. If the attacker's identity is confirmed, it would raise to eight the number of women suicide bombers to strike in Iraq so far this year.