text:
/******************************************************************************
 *
 * Module Name: utcopy - Internal to external object translation utilities
 *
 *****************************************************************************/

/******************************************************************************
 *
 * 1. Copyright Notice
 *
 * Some or all of this work - Copyright (c) 1999 - 2010, Intel Corp.
 * All rights reserved.
 *
 * 2. License
 *
 * 2.1. This is your license from Intel Corp. under its intellectual property
 * rights.  You may have additional license terms from the party that provided
 * you this software, covering your right to use that party's intellectual
 * property rights.
 *
 * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
 * copy of the source code appearing in this file ("Covered Code") an
 * irrevocable, perpetual, worldwide license under Intel's copyrights in the
 * base code distributed originally by Intel ("Original Intel Code") to copy,
 * make derivatives, distribute, use and display any portion of the Covered
 * Code in any form, with the right to sublicense such rights; and
 *
 * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
 * license (with the right to sublicense), under only those claims of Intel
 * patents that are infringed by the Original Intel Code, to make, use, sell,
 * offer to sell, and import the Covered Code and derivative works thereof
 * solely to the minimum extent necessary to exercise the above copyright
 * license, and in no event shall the patent license extend to any additions
 * to or modifications of the Original Intel Code.  No other license or right
 * is granted directly or by implication, estoppel or otherwise;
 *
 * The above copyright and patent license is granted only if the following
 * conditions are met:
 *
 * 3. Conditions
 *
 * 3.1. Redistribution of Source with Rights to Further Distribute Source.
 * Redistribution of source code of any substantial portion of the Covered
 * Code or modification with rights to further distribute source must include
 * the above Copyright Notice, the above License, this list of Conditions,
 * and the following Disclaimer and Export Compliance provision.  In addition,
 * Licensee must cause all Covered Code to which Licensee contributes to
 * contain a file documenting the changes Licensee made to create that Covered
 * Code and the date of any change.  Licensee must include in that file the
 * documentation of any changes made by any predecessor Licensee.  Licensee
 * must include a prominent statement that the modification is derived,
 * directly or indirectly, from Original Intel Code.
 *
 * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
 * Redistribution of source code of any substantial portion of the Covered
 * Code or modification without rights to further distribute source must
 * include the following Disclaimer and Export Compliance provision in the
 * documentation and/or other materials provided with distribution.  In
 * addition, Licensee may not authorize further sublicense of source of any
 * portion of the Covered Code, and must include terms to the effect that the
 * license from Licensee to its licensee is limited to the intellectual
 * property embodied in the software Licensee provides to its licensee, and
 * not to intellectual property embodied in modifications its licensee may
 * make.
 *
 * 3.3. Redistribution of Executable. Redistribution in executable form of any
 * substantial portion of the Covered Code or modification must reproduce the
 * above Copyright Notice, and the following Disclaimer and Export Compliance
 * provision in the documentation and/or other materials provided with the
 * distribution.
 *
 * 3.4. Intel retains all right, title, and interest in and to the Original
 * Intel Code.
 *
 * 3.5. Neither the name Intel nor any other trademark owned or controlled by
 * Intel shall be used in advertising or otherwise to promote the sale, use or
 * other dealings in products derived from or relating to the Covered Code
 * without prior written authorization from Intel.
 *
 * 4. Disclaimer and Export Compliance
 *
 * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
 * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
 * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
 * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
 * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
 * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
 * PARTICULAR PURPOSE.
 *
 * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
 * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
 * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
 * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
 * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
 * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
 * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
 * LIMITED REMEDY.
 *
 * 4.3. Licensee shall not export, either directly or indirectly, any of this
 * software or system incorporating such software without first obtaining any
 * required license or other approval from the U. S. Department of Commerce or
 * any other agency or department of the United States Government.  In the
 * event Licensee exports any such software from the United States or
 * re-exports any such software from a foreign destination, Licensee shall
 * ensure that the distribution and export/re-export of the software is in
 * compliance with all laws, regulations, orders, or other restrictions of the
 * U.S. Export Administration Regulations. Licensee agrees that neither it nor
 * any of its subsidiaries will export/re-export any technical data, process,
 * software, or service, directly or indirectly, to any country for which the
 * United States government or any agency thereof requires an export license,
 * other governmental approval, or letter of assurance, without first obtaining
 * such license, approval or letter.
 *
 *****************************************************************************/

#define __UTCOPY_C__

#include "acpi.h"
#include "accommon.h"
#include "acnamesp.h"

#define _COMPONENT          ACPI_UTILITIES
        ACPI_MODULE_NAME    ("utcopy")

/* Local prototypes */

static ACPI_STATUS
AcpiUtCopyIsimpleToEsimple (
    ACPI_OPERAND_OBJECT     *InternalObject,
    ACPI_OBJECT             *ExternalObject,
    UINT8                   *DataSpace,
    ACPI_SIZE               *BufferSpaceUsed);

static ACPI_STATUS
AcpiUtCopyIelementToIelement (
    UINT8                   ObjectType,
    ACPI_OPERAND_OBJECT     *SourceObject,
    ACPI_GENERIC_STATE      *State,
    void                    *Context);

static ACPI_STATUS
AcpiUtCopyIpackageToEpackage (
    ACPI_OPERAND_OBJECT     *InternalObject,
    UINT8                   *Buffer,
    ACPI_SIZE               *SpaceUsed);

static ACPI_STATUS
AcpiUtCopyEsimpleToIsimple(
    ACPI_OBJECT             *UserObj,
    ACPI_OPERAND_OBJECT     **ReturnObj);

static ACPI_STATUS
AcpiUtCopyEpackageToIpackage (
    ACPI_OBJECT             *ExternalObject,
    ACPI_OPERAND_OBJECT     **InternalObject);

static ACPI_STATUS
AcpiUtCopySimpleObject (
    ACPI_OPERAND_OBJECT     *SourceDesc,
    ACPI_OPERAND_OBJECT     *DestDesc);

static ACPI_STATUS
AcpiUtCopyIelementToEelement (
    UINT8                   ObjectType,
    ACPI_OPERAND_OBJECT     *SourceObject,
    ACPI_GENERIC_STATE      *State,
    void                    *Context);

static ACPI_STATUS
AcpiUtCopyIpackageToIpackage (
    ACPI_OPERAND_OBJECT     *SourceObj,
    ACPI_OPERAND_OBJECT     *DestObj,
    ACPI_WALK_STATE         *WalkState);

/*******************************************************************************
 *
 * FUNCTION:    AcpiUtCopyIsimpleToEsimple
 *
 * PARAMETERS:  InternalObject      - Source object to be copied
 *              ExternalObject      - Where to return the copied object
 *              DataSpace           - Where object data is returned (such as
 *                                    buffer and string data)
 *              BufferSpaceUsed     - Length of DataSpace that was used
 *
 * RETURN:      Status
 *
 * DESCRIPTION: This function is called to copy a simple internal object to
 *              an external object.
 *
 *              The DataSpace buffer is assumed to have sufficient space for
 *              the object.
 *
 ******************************************************************************/

static ACPI_STATUS
AcpiUtCopyIsimpleToEsimple (
    ACPI_OPERAND_OBJECT     *InternalObject,
    ACPI_OBJECT             *ExternalObject,
    UINT8                   *DataSpace,
    ACPI_SIZE               *BufferSpaceUsed)
{
    ACPI_STATUS             Status = AE_OK;

    ACPI_FUNCTION_TRACE (UtCopyIsimpleToEsimple);

    *BufferSpaceUsed = 0;

    /*
     * Check for NULL object case (could be an uninitialized
     * package element)
     */
    if (!InternalObject)
    {
        return_ACPI_STATUS (AE_OK);
    }

    /* Always clear the external object */

    ACPI_MEMSET (ExternalObject, 0, sizeof (ACPI_OBJECT));

    /*
     * In general, the external object will be the same type as
     * the internal object
     */
    ExternalObject->Type = InternalObject->Common.Type;

    /* However, only a limited number of external types are supported */

    switch (InternalObject->Common.Type)
    {
    case ACPI_TYPE_STRING:

        ExternalObject->String.Pointer = (char *) DataSpace;
        ExternalObject->String.Length  = InternalObject->String.Length;
        *BufferSpaceUsed = ACPI_ROUND_UP_TO_NATIVE_WORD (
                            (ACPI_SIZE) InternalObject->String.Length + 1);

        ACPI_MEMCPY ((void *) DataSpace,
            (void *) InternalObject->String.Pointer,
            (ACPI_SIZE) InternalObject->String.Length + 1);
        break;

    case ACPI_TYPE_BUFFER:

        ExternalObject->Buffer.Pointer = DataSpace;
        ExternalObject->Buffer.Length  = InternalObject->Buffer.Length;
        *BufferSpaceUsed = ACPI_ROUND_UP_TO_NATIVE_WORD (
                            InternalObject->String.Length);

        ACPI_MEMCPY ((void *) DataSpace,
            (void *) InternalObject->Buffer.Pointer,
            InternalObject->Buffer.Length);
        break;

    case ACPI_TYPE_INTEGER:

        ExternalObject->Integer.Value = InternalObject->Integer.Value;
        break;

    case ACPI_TYPE_LOCAL_REFERENCE:

        /* This is an object reference. */

        switch (InternalObject->Reference.Class)
        {
        case ACPI_REFCLASS_NAME:

            /*
             * For namepath, return the object handle ("reference")
             * We are referring to the namespace node
             */
            ExternalObject->Reference.Handle =
                InternalObject->Reference.Node;
            ExternalObject->Reference.ActualType =
                AcpiNsGetType (InternalObject->Reference.Node);
            break;

        default:

            /* All other reference types are unsupported */

            return_ACPI_STATUS (AE_TYPE);
        }
        break;

    case ACPI_TYPE_PROCESSOR:

        ExternalObject->Processor.ProcId =
            InternalObject->Processor.ProcId;
        ExternalObject->Processor.PblkAddress =
            InternalObject->Processor.Address;
        ExternalObject->Processor.PblkLength =
            InternalObject->Processor.Length;
        break;

    case ACPI_TYPE_POWER:

        ExternalObject->PowerResource.SystemLevel =
            InternalObject->PowerResource.SystemLevel;

        ExternalObject->PowerResource.ResourceOrder =
            InternalObject->PowerResource.ResourceOrder;
        break;

    default:
        /*
         * There is no corresponding external object type
         */
        ACPI_ERROR ((AE_INFO,
            "Unsupported object type, cannot convert to external object: %s",
            AcpiUtGetTypeName (InternalObject->Common.Type)));

        return_ACPI_STATUS (AE_SUPPORT);
    }

    return_ACPI_STATUS (Status);
}

/*******************************************************************************
 *
 * FUNCTION:    AcpiUtCopyIelementToEelement
 *
 * PARAMETERS:  ACPI_PKG_CALLBACK
 *
 * RETURN:      Status
 *
 * DESCRIPTION: Copy one package element to another package element
 *
 ******************************************************************************/

static ACPI_STATUS
AcpiUtCopyIelementToEelement (
    UINT8                   ObjectType,
    ACPI_OPERAND_OBJECT     *SourceObject,
    ACPI_GENERIC_STATE      *State,
    void                    *Context)
{
    ACPI_STATUS             Status = AE_OK;
    ACPI_PKG_INFO           *Info = (ACPI_PKG_INFO *) Context;
    ACPI_SIZE               ObjectSpace;
    UINT32                  ThisIndex;
    ACPI_OBJECT             *TargetObject;

    ACPI_FUNCTION_ENTRY ();

    ThisIndex    = State->Pkg.Index;
    TargetObject = (ACPI_OBJECT *)
        &((ACPI_OBJECT *)(State->Pkg.DestObject))->Package.Elements[ThisIndex];

    switch (ObjectType)
    {
    case ACPI_COPY_TYPE_SIMPLE:

        /*
         * This is a simple or null object
         */
        Status = AcpiUtCopyIsimpleToEsimple (SourceObject,
                        TargetObject, Info->FreeSpace, &ObjectSpace);
        if (ACPI_FAILURE (Status))
        {
            return (Status);
        }
        break;

    case ACPI_COPY_TYPE_PACKAGE:

        /*
         * Build the package object
         */
        TargetObject->Type              = ACPI_TYPE_PACKAGE;
        TargetObject->Package.Count     = SourceObject->Package.Count;
        TargetObject->Package.Elements  =
            ACPI_CAST_PTR (ACPI_OBJECT, Info->FreeSpace);

        /*
         * Pass the new package object back to the package walk routine
         */
        State->Pkg.ThisTargetObj = TargetObject;

        /*
         * Save space for the array of objects (Package elements)
         * update the buffer length counter
         */
        ObjectSpace = ACPI_ROUND_UP_TO_NATIVE_WORD (
                            (ACPI_SIZE) TargetObject->Package.Count *
                            sizeof (ACPI_OBJECT));
        break;

    default:
        return (AE_BAD_PARAMETER);
    }

    Info->FreeSpace   += ObjectSpace;
    Info->Length      += ObjectSpace;
    return (Status);
}

/*******************************************************************************
 *
 * FUNCTION:    AcpiUtCopyIpackageToEpackage
 *
 * PARAMETERS:  InternalObject      - Pointer to the object we are returning
 *              Buffer              - Where the object is returned
 *              SpaceUsed           - Where the object length is returned
 *
 * RETURN:      Status
 *
 * DESCRIPTION: This function is called to place a package object in a user
 *              buffer. A package object by definition contains other objects.
 *
 *              The buffer is assumed to have sufficient space for the object.
 *              The caller must have verified the buffer length needed using
 *              the AcpiUtGetObjectSize function before calling this function.
 *
 ******************************************************************************/

static ACPI_STATUS
AcpiUtCopyIpackageToEpackage (
    ACPI_OPERAND_OBJECT     *InternalObject,
    UINT8                   *Buffer,
    ACPI_SIZE               *SpaceUsed)
{
    ACPI_OBJECT             *ExternalObject;
    ACPI_STATUS             Status;
    ACPI_PKG_INFO           Info;

    ACPI_FUNCTION_TRACE (UtCopyIpackageToEpackage);

    /*
     * First package at head of the buffer
     */
    ExternalObject = ACPI_CAST_PTR (ACPI_OBJECT, Buffer);

    /*
     * Free space begins right after the first package
     */
    Info.Length      = ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT));
    Info.FreeSpace   = Buffer + ACPI_ROUND_UP_TO_NATIVE_WORD (
                                    sizeof (ACPI_OBJECT));
    Info.ObjectSpace = 0;
    Info.NumPackages = 1;

    ExternalObject->Type             = InternalObject->Common.Type;
    ExternalObject->Package.Count    = InternalObject->Package.Count;
    ExternalObject->Package.Elements = ACPI_CAST_PTR (ACPI_OBJECT,
                                            Info.FreeSpace);

    /*
     * Leave room for an array of ACPI_OBJECTS in the buffer
     * and move the free space past it
     */
    Info.Length    += (ACPI_SIZE) ExternalObject->Package.Count *
                            ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT));
    Info.FreeSpace += ExternalObject->Package.Count *
                            ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT));

    Status = AcpiUtWalkPackageTree (InternalObject, ExternalObject,
                AcpiUtCopyIelementToEelement, &Info);

    *SpaceUsed = Info.Length;
    return_ACPI_STATUS (Status);
}

/*******************************************************************************
 *
 * FUNCTION:    AcpiUtCopyIobjectToEobject
 *
 * PARAMETERS:  InternalObject      - The internal object to be converted
 *              RetBuffer           - Where the object is returned
 *
 * RETURN:      Status
 *
 * DESCRIPTION: This function is called to build an API object to be returned
 *              to the caller.
 *
 ******************************************************************************/

ACPI_STATUS
AcpiUtCopyIobjectToEobject (
    ACPI_OPERAND_OBJECT     *InternalObject,
    ACPI_BUFFER             *RetBuffer)
{
    ACPI_STATUS             Status;

    ACPI_FUNCTION_TRACE (UtCopyIobjectToEobject);

    if (InternalObject->Common.Type == ACPI_TYPE_PACKAGE)
    {
        /*
         * Package object:  Copy all subobjects (including
         * nested packages)
         */
        Status = AcpiUtCopyIpackageToEpackage (InternalObject,
                        RetBuffer->Pointer, &RetBuffer->Length);
    }
    else
    {
        /*
         * Build a simple object (no nested objects)
         */
        Status = AcpiUtCopyIsimpleToEsimple (InternalObject,
                    ACPI_CAST_PTR (ACPI_OBJECT, RetBuffer->Pointer),
                    ACPI_ADD_PTR (UINT8, RetBuffer->Pointer,
                        ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT))),
                    &RetBuffer->Length);
        /*
         * build simple does not include the object size in the length
         * so we add it in here
         */
        RetBuffer->Length += sizeof (ACPI_OBJECT);
    }

    return_ACPI_STATUS (Status);
}

/*******************************************************************************
 *
 * FUNCTION:    AcpiUtCopyEsimpleToIsimple
 *
 * PARAMETERS:  ExternalObject      - The external object to be converted
 *              RetInternalObject   - Where the internal object is returned
 *
 * RETURN:      Status
 *
 * DESCRIPTION: This function copies an external object to an internal one.
 *              NOTE: Pointers can be copied, we don't need to copy data.
 *              (The pointers have to be valid in our address space no matter
 *              what we do with them!)
 *
 ******************************************************************************/

static ACPI_STATUS
AcpiUtCopyEsimpleToIsimple (
    ACPI_OBJECT             *ExternalObject,
    ACPI_OPERAND_OBJECT     **RetInternalObject)
{
    ACPI_OPERAND_OBJECT     *InternalObject;

    ACPI_FUNCTION_TRACE (UtCopyEsimpleToIsimple);

    /*
     * Simple types supported are: String, Buffer, Integer
     */
    switch (ExternalObject->Type)
    {
    case ACPI_TYPE_STRING:
    case ACPI_TYPE_BUFFER:
    case ACPI_TYPE_INTEGER:
    case ACPI_TYPE_LOCAL_REFERENCE:

        InternalObject = AcpiUtCreateInternalObject (
                            (UINT8) ExternalObject->Type);
        if (!InternalObject)
        {
            return_ACPI_STATUS (AE_NO_MEMORY);
        }
        break;

    case ACPI_TYPE_ANY: /* This is the case for a NULL object */

        *RetInternalObject = NULL;
        return_ACPI_STATUS (AE_OK);

    default:
        /* All other types are not supported */

        ACPI_ERROR ((AE_INFO,
            "Unsupported object type, cannot convert to internal object: %s",
            AcpiUtGetTypeName (ExternalObject->Type)));

        return_ACPI_STATUS (AE_SUPPORT);
    }

    /* Must COPY string and buffer contents */

    switch (ExternalObject->Type)
    {
    case ACPI_TYPE_STRING:

        InternalObject->String.Pointer =
            ACPI_ALLOCATE_ZEROED ((ACPI_SIZE)
                ExternalObject->String.Length + 1);

        if (!InternalObject->String.Pointer)
        {
            goto ErrorExit;
        }

        ACPI_MEMCPY (InternalObject->String.Pointer,
                     ExternalObject->String.Pointer,
                     ExternalObject->String.Length);

        InternalObject->String.Length  = ExternalObject->String.Length;
        break;

    case ACPI_TYPE_BUFFER:

        InternalObject->Buffer.Pointer =
            ACPI_ALLOCATE_ZEROED (ExternalObject->Buffer.Length);
        if (!InternalObject->Buffer.Pointer)
        {
            goto ErrorExit;
        }

        ACPI_MEMCPY (InternalObject->Buffer.Pointer,
                     ExternalObject->Buffer.Pointer,
                     ExternalObject->Buffer.Length);

        InternalObject->Buffer.Length  = ExternalObject->Buffer.Length;

        /* Mark buffer data valid */

        InternalObject->Buffer.Flags |= AOPOBJ_DATA_VALID;
        break;

    case ACPI_TYPE_INTEGER:

        InternalObject->Integer.Value   = ExternalObject->Integer.Value;
        break;

    case ACPI_TYPE_LOCAL_REFERENCE:

        /* TBD: should validate incoming handle */

        InternalObject->Reference.Class = ACPI_REFCLASS_NAME;
        InternalObject->Reference.Node = ExternalObject->Reference.Handle;
        break;

    default:
        /* Other types can't get here */
        break;
    }

    *RetInternalObject = InternalObject;
    return_ACPI_STATUS (AE_OK);

ErrorExit:
    AcpiUtRemoveReference (InternalObject);
    return_ACPI_STATUS (AE_NO_MEMORY);
}

/*******************************************************************************
 *
 * FUNCTION:    AcpiUtCopyEpackageToIpackage
 *
 * PARAMETERS:  ExternalObject      - The external object to be converted
 *              InternalObject      - Where the internal object is returned
 *
 * RETURN:      Status
 *
 * DESCRIPTION: Copy an external package object to an internal package.
 *              Handles nested packages.
 *
 ******************************************************************************/

static ACPI_STATUS
AcpiUtCopyEpackageToIpackage (
    ACPI_OBJECT             *ExternalObject,
    ACPI_OPERAND_OBJECT     **InternalObject)
{
    ACPI_STATUS             Status = AE_OK;
    ACPI_OPERAND_OBJECT     *PackageObject;
    ACPI_OPERAND_OBJECT     **PackageElements;
    UINT32                  i;

    ACPI_FUNCTION_TRACE (UtCopyEpackageToIpackage);

    /* Create the package object */

    PackageObject = AcpiUtCreatePackageObject (ExternalObject->Package.Count);
    if (!PackageObject)
    {
        return_ACPI_STATUS (AE_NO_MEMORY);
    }

    PackageElements = PackageObject->Package.Elements;

    /*
     * Recursive implementation. Probably ok, since nested external packages
     * as parameters should be very rare.
     */
    for (i = 0; i < ExternalObject->Package.Count; i++)
    {
        Status = AcpiUtCopyEobjectToIobject (
                    &ExternalObject->Package.Elements[i],
                    &PackageElements[i]);
        if (ACPI_FAILURE (Status))
        {
            /* Truncate package and delete it */

            PackageObject->Package.Count = i;
            PackageElements[i] = NULL;
            AcpiUtRemoveReference (PackageObject);
            return_ACPI_STATUS (Status);
        }
    }

    /* Mark package data valid */

    PackageObject->Package.Flags |= AOPOBJ_DATA_VALID;

    *InternalObject = PackageObject;
    return_ACPI_STATUS (Status);
}

/*******************************************************************************
 *
 * FUNCTION:    AcpiUtCopyEobjectToIobject
 *
 * PARAMETERS:  ExternalObject      - The external object to be converted
 *              InternalObject      - Where the internal object is returned
 *
 * RETURN:      Status
 *
 * DESCRIPTION: Converts an external object to an internal object.
 *
 ******************************************************************************/

ACPI_STATUS
AcpiUtCopyEobjectToIobject (
    ACPI_OBJECT             *ExternalObject,
    ACPI_OPERAND_OBJECT     **InternalObject)
{
    ACPI_STATUS             Status;

    ACPI_FUNCTION_TRACE (UtCopyEobjectToIobject);

    if (ExternalObject->Type == ACPI_TYPE_PACKAGE)
    {
        Status = AcpiUtCopyEpackageToIpackage (ExternalObject, InternalObject);
    }
    else
    {
        /*
         * Build a simple object (no nested objects)
         */
        Status = AcpiUtCopyEsimpleToIsimple (ExternalObject, InternalObject);
    }

    return_ACPI_STATUS (Status);
}

/*******************************************************************************
 *
 * FUNCTION:    AcpiUtCopySimpleObject
 *
 * PARAMETERS:  SourceDesc          - The internal object to be copied
 *              DestDesc            - New target object
 *
 * RETURN:      Status
 *
 * DESCRIPTION: Simple copy of one internal object to another. Reference count
 *              of the destination object is preserved.
 *
 ******************************************************************************/

static ACPI_STATUS
AcpiUtCopySimpleObject (
    ACPI_OPERAND_OBJECT     *SourceDesc,
    ACPI_OPERAND_OBJECT     *DestDesc)
{
    UINT16                  ReferenceCount;
    ACPI_OPERAND_OBJECT     *NextObject;
    ACPI_STATUS             Status;
    ACPI_SIZE               CopySize;

    /* Save fields from destination that we don't want to overwrite */

    ReferenceCount = DestDesc->Common.ReferenceCount;
    NextObject = DestDesc->Common.NextObject;

    /*
     * Copy the entire source object over the destination object.
     * Note: Source can be either an operand object or namespace node.
     */
    CopySize = sizeof (ACPI_OPERAND_OBJECT);
    if (ACPI_GET_DESCRIPTOR_TYPE (SourceDesc) == ACPI_DESC_TYPE_NAMED)
    {
        CopySize = sizeof (ACPI_NAMESPACE_NODE);
    }

    ACPI_MEMCPY (ACPI_CAST_PTR (char, DestDesc),
        ACPI_CAST_PTR (char, SourceDesc), CopySize);

    /* Restore the saved fields */

    DestDesc->Common.ReferenceCount = ReferenceCount;
    DestDesc->Common.NextObject = NextObject;

    /* New object is not static, regardless of source */

    DestDesc->Common.Flags &= ~AOPOBJ_STATIC_POINTER;

    /* Handle the objects with extra data */

    switch (DestDesc->Common.Type)
    {
    case ACPI_TYPE_BUFFER:
        /*
         * Allocate and copy the actual buffer if and only if:
         * 1) There is a valid buffer pointer
         * 2) The buffer has a length > 0
         */
        if ((SourceDesc->Buffer.Pointer) &&
            (SourceDesc->Buffer.Length))
        {
            DestDesc->Buffer.Pointer =
                ACPI_ALLOCATE (SourceDesc->Buffer.Length);
            if (!DestDesc->Buffer.Pointer)
            {
                return (AE_NO_MEMORY);
            }

            /* Copy the actual buffer data */

            ACPI_MEMCPY (DestDesc->Buffer.Pointer,
                SourceDesc->Buffer.Pointer, SourceDesc->Buffer.Length);
        }
        break;

    case ACPI_TYPE_STRING:
        /*
         * Allocate and copy the actual string if and only if:
         * 1) There is a valid string pointer
         * (Pointer to a NULL string is allowed)
         */
        if (SourceDesc->String.Pointer)
        {
            DestDesc->String.Pointer =
                ACPI_ALLOCATE ((ACPI_SIZE) SourceDesc->String.Length + 1);
            if (!DestDesc->String.Pointer)
            {
                return (AE_NO_MEMORY);
            }

            /* Copy the actual string data */

            ACPI_MEMCPY (DestDesc->String.Pointer, SourceDesc->String.Pointer,
                (ACPI_SIZE) SourceDesc->String.Length + 1);
        }
        break;

    case ACPI_TYPE_LOCAL_REFERENCE:
        /*
         * We copied the reference object, so we now must add a reference
         * to the object pointed to by the reference
         *
         * DDBHandle reference (from Load/LoadTable) is a special reference,
         * it does not have a Reference.Object, so does not need to
         * increase the reference count
         */
        if (SourceDesc->Reference.Class == ACPI_REFCLASS_TABLE)
        {
            break;
        }

        AcpiUtAddReference (SourceDesc->Reference.Object);
        break;

    case ACPI_TYPE_REGION:
        /*
         * We copied the Region Handler, so we now must add a reference
         */
        if (DestDesc->Region.Handler)
        {
            AcpiUtAddReference (DestDesc->Region.Handler);
        }
        break;

    /*
     * For Mutex and Event objects, we cannot simply copy the underlying
     * OS object. We must create a new one.
     */
    case ACPI_TYPE_MUTEX:

        Status = AcpiOsCreateMutex (&DestDesc->Mutex.OsMutex);
        if (ACPI_FAILURE (Status))
        {
            return (Status);
        }
        break;

    case ACPI_TYPE_EVENT:

        Status = AcpiOsCreateSemaphore (ACPI_NO_UNIT_LIMIT, 0,
                    &DestDesc->Event.OsSemaphore);
        if (ACPI_FAILURE (Status))
        {
            return (Status);
        }
        break;

    default:
        /* Nothing to do for other simple objects */
        break;
    }

    return (AE_OK);
}

/*******************************************************************************
 *
 * FUNCTION:    AcpiUtCopyIelementToIelement
 *
 * PARAMETERS:  ACPI_PKG_CALLBACK
 *
 * RETURN:      Status
 *
 * DESCRIPTION: Copy one package element to another package element
 *
 ******************************************************************************/

static ACPI_STATUS
AcpiUtCopyIelementToIelement (
    UINT8                   ObjectType,
    ACPI_OPERAND_OBJECT     *SourceObject,
    ACPI_GENERIC_STATE      *State,
    void                    *Context)
{
    ACPI_STATUS             Status = AE_OK;
    UINT32                  ThisIndex;
    ACPI_OPERAND_OBJECT     **ThisTargetPtr;
    ACPI_OPERAND_OBJECT     *TargetObject;

    ACPI_FUNCTION_ENTRY ();

    ThisIndex     = State->Pkg.Index;
    ThisTargetPtr = (ACPI_OPERAND_OBJECT **)
                        &State->Pkg.DestObject->Package.Elements[ThisIndex];

    switch (ObjectType)
    {
    case ACPI_COPY_TYPE_SIMPLE:

        /* A null source object indicates a (legal) null package element */

        if (SourceObject)
        {
            /*
             * This is a simple object, just copy it
             */
            TargetObject = AcpiUtCreateInternalObject (
                                SourceObject->Common.Type);
            if (!TargetObject)
            {
                return (AE_NO_MEMORY);
            }

            Status = AcpiUtCopySimpleObject (SourceObject, TargetObject);
            if (ACPI_FAILURE (Status))
            {
                goto ErrorExit;
            }

            *ThisTargetPtr = TargetObject;
        }
        else
        {
            /* Pass through a null element */

            *ThisTargetPtr = NULL;
        }
        break;

    case ACPI_COPY_TYPE_PACKAGE:

        /*
         * This object is a package - go down another nesting level
         * Create and build the package object
         */
        TargetObject = AcpiUtCreatePackageObject (SourceObject->Package.Count);
        if (!TargetObject)
        {
            return (AE_NO_MEMORY);
        }

        TargetObject->Common.Flags = SourceObject->Common.Flags;

        /* Pass the new package object back to the package walk routine */

        State->Pkg.ThisTargetObj = TargetObject;

        /* Store the object pointer in the parent package object */

        *ThisTargetPtr = TargetObject;
        break;

    default:
        return (AE_BAD_PARAMETER);
    }

    return (Status);

ErrorExit:
    AcpiUtRemoveReference (TargetObject);
    return (Status);
}

/*******************************************************************************
 *
 * FUNCTION:    AcpiUtCopyIpackageToIpackage
 *
 * PARAMETERS:  SourceObj       - Pointer to the source package object
 *              DestObj         - Where the internal object is returned
 *              WalkState       - Current Walk state descriptor
 *
 * RETURN:      Status
 *
 * DESCRIPTION: This function is called to copy an internal package object
 *              into another internal package object.
 *
 ******************************************************************************/

static ACPI_STATUS
AcpiUtCopyIpackageToIpackage (
    ACPI_OPERAND_OBJECT     *SourceObj,
    ACPI_OPERAND_OBJECT     *DestObj,
    ACPI_WALK_STATE         *WalkState)
{
    ACPI_STATUS             Status = AE_OK;

    ACPI_FUNCTION_TRACE (UtCopyIpackageToIpackage);

    DestObj->Common.Type    = SourceObj->Common.Type;
    DestObj->Common.Flags   = SourceObj->Common.Flags;
    DestObj->Package.Count  = SourceObj->Package.Count;

    /*
     * Create the object array and walk the source package tree
     */
    DestObj->Package.Elements = ACPI_ALLOCATE_ZEROED (
                                    ((ACPI_SIZE) SourceObj->Package.Count + 1) *
                                    sizeof (void *));
    if (!DestObj->Package.Elements)
    {
        ACPI_ERROR ((AE_INFO, "Package allocation failure"));
        return_ACPI_STATUS (AE_NO_MEMORY);
    }

    /*
     * Copy the package element-by-element by walking the package "tree".
     * This handles nested packages of arbitrary depth.
     */
    Status = AcpiUtWalkPackageTree (SourceObj, DestObj,
                AcpiUtCopyIelementToIelement, WalkState);
    if (ACPI_FAILURE (Status))
    {
        /* On failure, delete the destination package object */

        AcpiUtRemoveReference (DestObj);
    }

    return_ACPI_STATUS (Status);
}

/*******************************************************************************
 *
 * FUNCTION:    AcpiUtCopyIobjectToIobject
 *
 * PARAMETERS:  SourceDesc          - The internal object to be copied
 *              DestDesc            - Where the copied object is returned
 *              WalkState           - Current walk state
 *
 * RETURN:      Status
 *
 * DESCRIPTION: Copy an internal object to a new internal object
 *
 ******************************************************************************/

ACPI_STATUS
AcpiUtCopyIobjectToIobject (
    ACPI_OPERAND_OBJECT     *SourceDesc,
    ACPI_OPERAND_OBJECT     **DestDesc,
    ACPI_WALK_STATE         *WalkState)
{
    ACPI_STATUS             Status = AE_OK;

    ACPI_FUNCTION_TRACE (UtCopyIobjectToIobject);

    /* Create the top level object */

    *DestDesc = AcpiUtCreateInternalObject (SourceDesc->Common.Type);
    if (!*DestDesc)
    {
        return_ACPI_STATUS (AE_NO_MEMORY);
    }

    /* Copy the object and possible subobjects */

    if (SourceDesc->Common.Type == ACPI_TYPE_PACKAGE)
    {
        Status = AcpiUtCopyIpackageToIpackage (SourceDesc, *DestDesc,
                        WalkState);
    }
    else
    {
        Status = AcpiUtCopySimpleObject (SourceDesc, *DestDesc);
    }

    return_ACPI_STATUS (Status);
}

redpajama_set_name: RedPajamaGithub


text:
Samuel S. Epstein, MD, Chairman of the Cancer Prevention Coalition, stated in the Aug. 29, 2006 press release titled "Hormonal Milk Poses Greater Risks Than Just Twinning," to support his book What's In Your Milk?:
"Hormonal milk contains up to ten-fold increased levels of the natural Insulin-like Growth Factor, known as IGF… Hormonal milk is very different than natural milk. Hormonal milk is often contaminated with pus cells, resulting from mastitis in cows due to hyperstimulation of milk production, and also with antibiotics used to treat the mastitis. Other abnormalities include increased fatty acids, which are incriminated in heart disease.
More serious are major risks of breast, colon, and prostate cancers due to increased IGF levels in hormonal milk. Evidence for this has been documented in about 50 scientific publications over the past three decades… A less well-recognized risk is evidence that IGF blocks natural, self-destructive, defense mechanisms against early submicroscopic cancers, technically known as apoptosis."
ProCon.org. (2008, April 10). Samuel S. Epstein. ProCon.org. https://milk.procon.org/quotes/s-epstein-3
ProCon.org, "Samuel S. Epstein," ProCon.org. last modified April 10, 2008. https://milk.procon.org/quotes/s-epstein-3/.
ProCon.org, "Samuel S. Epstein." ProCon.org. 10 Apr. 2008, milk.procon.org/quotes/s-epstein-3
ProCon.org. "Samuel S. Epstein." ProCon.org. Last modified on April 10, 2008. Accessed January 28, 2023. https://milk.procon.org/quotes/s-epstein-3/

redpajama_set_name: RedPajamaCommonCrawl


text:
package br.com.raulcaj.transactionmodule.util;

import java.math.BigDecimal;

public class MathBD {
	public static BigDecimal max(final BigDecimal fst, final BigDecimal snd) {
		return new BigDecimal(Math.max(fst.longValue(), snd.longValue()));
	}
}


It's weird looking back at all my old posts because it takes me back to all the things I've done this year. 2013 has been a bit of a weird one for me; the first few months were pretty crap but it made me realise what I want from life, and looking back now I know I'm a much stronger person for it.
Other than that, it's been pretty good. I'm settled into my London life (and loving it), have an incredible family, boyfriend and bunch of friends, and met a lot of lovely bloggers.
I'm ready to say goodbye to 2013 and can't wait to see what 2014 will bring.
It's that time of year again; the lull between Christmas and New Year's Eve when we realise we've gorged ourselves on too many mince pies and we're trying to figure out how we'll fit into our party outfit for the 31st...that's if we've got an outfit sorted at all!
I normally change my New Year's outfit choice about five times before settling on something last minute. That's why I've compiled this NYE wishlist, with three outfit options (greedy? maybe...) featuring all items from Coast*; the top left dress is flirty and dressy, the jumpsuit is a more casual option, while the dress in the top right is somewhere in between. The three accessories will go with all three outfits, meaning I can easily put together an outfit depending on how I feel on the night.
Happy Christmas Eve! Pretty sure I say this every year but I really can't believe how quickly it's come around. I've left London for the festive period and am back up north with my family, spending the week catching up, drinking lots of champagne and eating far too much.
I bought this fur coat years ago when I was a student in Newcastle. At about £20 it was such a good buy and perfect for bundling up when it's cold outside. I've teamed it with my trusty black jumpsuit which is really comfy and a nice alternative to a dress this party season.
You can't go wrong with an LBD (in fact, I think I'm totalling about 15 in my wardrobe...) and this one from Karma Clothing is perfect for this time of year - the long sleeves and velvet are a warm distraction from bare legs! The best bit? It's only £10.99! Here I've paired it with a leather jacket and a socks-and-heels combo to grunge it up a bit and my monogrammed clutch from Whistles for a bit of colour.
UGG Australia has launched a competition for bloggers, with the prize being a weekend trip to Copenhagen, a pair of UGG boots and a pair of UGG slippers. I would LOVE a trip to Copenhagen so I definitely wasn't going to let this competition pass me by!
To enter we had to create a mood board showing how we'd style a UGG product for winter, spending no more than £1000, and then lovely bloggers Mel and Wendy will pick a winner and two runners-up. It's easy to go a bit crazy with £1000 (albeit virtually) but thankfully my outfit is well within budget at £613.99!
My winter wardrobe is pretty much black, grey and a hint of white, so I've stuck with that palette for the whole outfit. The cosy turtleneck and faux fur will keep me nice and warm, as will the fedora - hopefully distracting me from the bare knees (knees are the new cleavage, dontcha know). Finally, I've topped it all off with a bright red lip to add a pop of colour.
What do you think of my outfit? Have you ever been to Copenhagen?
This week's lust comes in the form of Missguided's burgundy faux leather shift dress. I love the colour, shape, raw edging, and anything leather (real or otherwise) gets a big tick from me. The best bit though? The price - £24.99!
Just a few of the images that I've been pinning this month for inspiration...follow me on Pinterest for more!
A couple of week's ago I was invited to ASOS' Christmas party - a night of festive fun filled with bloggers, beautiful clothes, a beauty pick n' mix, and even Father Christmas himself. It was great to meet these lovely girls (pictured), as well as Megan and Robyn!
I decided to wear my most festive dress (what says Christmas more than a dress made completely out of gold sequins?!) - this gorgeous Winter Kate number that I got for an absolute bargain at London Fashion Weekend a couple of years ago, paired with simple accessories.
I'm off to Cape Town in February and with all this cold weather and layering up, I'm dreaming of hot weather and sunshine. How cute is this short and crop top co-ord set from ASOS? This would be perfect to add to the holiday wardrobe!
A few weeks ago I got an email from Millennium Hotels about their 'Festive Hub' that they are putting together about some of the best Christmas experiences London has to offer, and even better, that they were inviting bloggers to road-test them.
Outdoor ice skating is one of the things that I always associate with Christmas (probably from watching too many rom-coms), and I was lucky enough to be given two tickets to Somerset House's pop-up rink.
Last night I grabbed my boyfriend Adam and off we went to the iconic building with visions of holding hands and twirling in the ice (again, too many rom-coms). To begin with, it wasn't quite like that - we were more like bambi on the ice, gripping on to the sides as we shuffled our way around the rink - but we soon got the hang of it and really enjoyed the night.
It was dark, the whole building was lit up, the rink was full of happy skaters and a huge Christmas tree watched over us. It was the perfect activity to get us in the festive spirit!
This pretty much my staple kind of outfit at the moment - leather trousers, a tee or jumper, boots, and all topped off with a fedora.
I bought this tee from Dover Street Market market a couple of weeks ago; I much prefer the fit of men's t-shirts and jumpers because it gives a slightly oversized silhouette - perfect for pairing with skinny trousers!
This dress from ASOS is a.ma.zing! The beaded detail, fitted bust and feather skirt are what dreams are made of. If this doesn't say Christmas party dress, I don't know what does.
I wore a Zara shirt, Asos faux leather pants, Carvela boots and Hermés scarf.
Thank you so much to everyone who came - it made all the organising worth it. Also thank you to Rossopomodoro for being so accommodating and putting up with us all! Hopefully it won't be the last that I see of these lovely ladies.
Happy December everyone! Gahh how is it December already...I need to get Christmas shopping pronto!
I bought this jumper about three years ago and it mainly stays in my wardrobe for months on end until I remember I have it and fancy giving it a breather. Because it's cropped I find it quite hard to wear with a lot of things but paired with this high waisted faux leather skirt, it's perfect.


One of the few things I love about my job is that we get a Winter Break. Our site is officially closed down from December 23rd – January 2nd. I just spent Christmas at my parents' house and now I'm heading home to do some projects! I've put together a list of 7 projects I really want to finish during my break. Of course I'm not that productive, so I'm hoping for 3 out of 7.
Yay for lists! I can't wait to see what you have in store for that headboard! I've seen some really awesome ones on Pinterest lately and it's making me want to build a new one!
Isn't it funny how we sometimes use our blogs to hold us accountable?
I look forward to your afters!


text:
Fit-again Koren eyeing more action
Iain Strachan 1419388606
After conquering the swimming pool and honing his boxing skills to earn a long-awaited A-League debut, the next challenge for Robert Koren is to play consistently for his new club.
City's international marquee saw his first appearance delayed by a persistent calf problem picked up days before the season opener.
The former Hull City and West Bromwich Albion player finally made his bow off the bench in the 1-0 derby win over Melbourne Victory on Saturday night and will now be keen for more playing time before January's break for the Asian Cup.
"I'm expecting much more to come," he said.
"I came here to help the club and help the young players. Hopefully I can do the job for the club."
City host league leaders Perth Glory on Friday, with another substitute appearance a strong possibility for the Slovenian, who is unlikely to play the full 90 minutes at this stage of his comeback.
"It's up to the manager to pick the team, the guys have done well in the last two games," he said.
"If I'm coming from the bench I will do my best."
The 34-year-old revealed the ambition of City to become an A-League powerhouse was a key factor behind his relocation from Europe to Australia in the off-season.
"I was looking for a new challenge," he said.
"When I first had contact with Melbourne City, I was really happy about what they wanted to achieve in the future. We need to go step by step but I'd like to help the team grow to become one of the biggest clubs in Australia."
Koren endured a frustrating spell on the sidelines after suffering a setback in his rehabilitation, forced to put in the hard work in the gym and the pool rather than training outside with his new team-mates.
"It was a long period, I'd been out for 10 weeks," he said.
"I worked really hard, boxing and swimming and the bike. When you're coming so close it's hard to be patient. The medical staff and coaching staff have done really good to hold me back. It's hard when you're seeing players running around.
"I did know how to swim but not as good as I can now, because to practice every second day brings you to another level. Still struggling to defend in boxing, I like to attack. It's easier to attack."
If that philosophy transfers from the ring to the football field in the 2015, Koren, who will be joined by domestic marquee Josh Kennedy in attack after the Asian Cup, could yet help to transform City's campaign.


Shipowners, masters and the flag states are responsible for ensuring that ships comply with the provisions of the relevant codes, practices and legislation. Therefore, ensuring these requirements are met and implemented effectively at sea is in the best interests of all maritime professionals – both on and offshore. Ships that fail to fulfil their commitments contained in agreed international legal instruments and subsequently sail in an unsafe condition, threaten lives as well as the marine environment. Therefore, it is in the interest of all to develop effective Port State interfaces for the sake of safe shipping.
This Port State Control Diploma, shaped by expert knowledge and first-hand experience, has been tailored to educate you on the fundamental components of Port State Control. From SOLAS to MARPOL, ISPS to ISM, this course will benefit the multitude of seafarers by educating you on the legal aspects of Port State Control and offering an insight into the work of a PSC Surveyor.
For shipowners, increasing your knowledge in this area can assist you in reducing the risk of detention, by highlighting the areas in which deficiencies are identified.
Whether you are looking to move into the field of Port State Control, or already work within the industry, this diploma will provide a comprehensive knowledge-base for your future career.
Geoffrey started out as an engineer cadet in 1970 on various commercial vessels before coming ashore in 1989 to work as a 3rd party pressure vessel inspector in South Africa for 3 years. Gained a Class 1 Motor Ship Certificate of Competency at Glasgow in 1980.
He joined a classification society in 1992 and worked as a surveyor up to principal surveyor for the next 20 years during which time gained a BEng (Hons) Naval Architecture and Ocean Engineering at Glasgow University in 2002 and an LLM by distance learning through London Metropolitan University in 2011.
Geoffrey is currently engaged as a Marine and Technical Manager for a large international company in Sydney, Australia.


text:
Dungeon of the Endless launches on Switch, coming to PS4 next week
Samantha | May 15, 2020
Categories: Indie Games, News, PC, PlayStation 4, Switch
Dungeon of the Endless is out now on Nintendo Switch. The PlayStation 4 version is coming on May 19.
Sega and Amplitude Studios have partnered up with Playdigious to adapt and publish the critically acclaimed tower-defense game Dungeon of the Endless on Nintendo Switch and PlayStation 4. According to the developers, the game has been carefully optimized for play on consoles.
From the start, players will be able to select Ayairi Whairydd the pug. The console version includes the Deep Freeze, Death Gamble, Rescue Team, and Organic Matters add-ons. Five languages are available as well, including the newly added Portuguese and Spanish.
Dungeon of the Endless was previously released on PC back in 2014. It was later released on Xbox One. So the PlayStation 4 and Nintendo Switch versions have been a long time coming.
The roguelike received mostly positive reviews. It is averaging a 79 out of 100 on Metacritic. We'll have our review of the PS4 version sometime next week. Stay tuned!
Watch the launch trailer below!
Tags: Amplitude Studios, Dungeon of the Endless, Playdigious, roguelike, Sega, tower defense
← Humble Bundle announces Humble Games, a new indie game publishing service
Hatsune Miku: Project Diva Mega Mix launches today on Nintendo Switch →
Yakuza: Like a Dragon runs at 4K 30fps and 1440p 60fps on PS5, Sega confirms
Kyle | December 25, 2020
Darkest Dungeon is free at Epic Games Store for 24 hours


The professional modelRosie Huntington-Whiteley is the first option to be the new lady instead of Megna Fox in Transformers 3. She will be a new character, so Mikaela Banes is gone from the saga. This is not official, or a 100% done deal at the moment, there is still a margin for error. However, Rosie very much seems to be where the part is headed.
Rosie Huntington-Whiteley head a list of 3 candidates, the others girls are Sarah Wright and the model Brooklyn Decker. It was a hard selection from that list of girls considered to star in Transfomers 3.
Rosi is 23 years old (April 18 1987), her height is 1.75 m (5 ft 9 in), her Measurements are 86-63-89 cm (34-25-35 in), she was a model of Victoria's Secret, and was born in Plymouth, Devon, England.
Gracias a todos los que me enviaron esta noticia.


A driver for the Intel PRO/Wireless 2200BG and 2915ABG Network Connection adapters.
See Documentation/networking/device_drivers/intel/ipw2200.txt for information on the capabilities currently enabled in this driver and for tips for debugging issues and problems.
In order to use this driver, you will need a firmware image for it. You can obtain the firmware from http://ipw2200.sf.net/. See the above referenced README.ipw2200 for information on where to install the firmware images.
It is recommended that you compile this driver as a module (M) rather than built-in (Y). This driver requires firmware at device initialization time, and when built-in this typically happens before the filesystem is accessible (hence firmware will be unavailable and initialization will fail). If you do choose to build this driver into your kernel image, you can avoid this problem by including the firmware and a firmware loader in an initramfs.
See Documentation/networking/README.ipw2200 for information on the capabilities currently enabled in this driver and for tips for debugging issues and problems.


Can someone show me what profile seal should be on the bustle trunk? There is nothing on my car, and i am not sure what seal to use, or how it mounts.
Stan should have this at AC Parts in Kansas. I would assume it has the same cross section as used on Westchesters .................... a hollow D section with a pre-glued flat side.
No he doesn't have any. He has the smaller half round for the open cars but it is too small for the bustle trunk. If it's the same hollow D profile but just larger I can find it somewhere. I just didn't know for sure what it was supposed to be. Just knew the smaller open car seal didn't fit.
I will check the dimensions of the D section used on my Westchester and let you know. I am sure there will be a supplier of an equivalent out there. I will ley you know later today ............................ I am in Australia.
The Westchester trunk seal is D shaped and measures 13 mm x 13 mm with a 6 mm hole in the middle. The flat base is pre-glued with a tear off strip.
Thanks Terry. That helps me so much. I can find something with those dimensions for sure.


Thanks for your note. I'll pray for your comfort as you recover. I also pray for the LORD's healing hand on your body, for strength & energy for Connie and your family.
So happy you are on the other side of surgery and starting the road to recovery. We'll be hunting inflatable lawn ornaments and watching a western hockey game before you know it! Thank for you keeping us updated. Love, light and lots of prayers!!!
To see you smiling in the photo is amazing, Phil. I'm thankful that your care is all in His hands and those of the very skilled doctors and nurses at U-M. Please hug Connie for us and know that we pray for you continually.
Looking good Phil glad to hear it went well!!
Go Phil! You are one tough guy. It will be a little sketchy until your healing completes but you will handle it well because you're you. Love to you and thank God you are on the road to recovery. See you soon. Love to Connie and the kids too.
Hey, Phil. Sharon Tubay here. I did not know of your illness, but I pray you will be healed. Your entry about the hitchhiker really touched me. I believe he WAS an angel sent to comfort and guide you during this time in your life. May God Bless you.
Phil- your perseverance and strength is simply amazing. We are each dealt a different hand in life, and you my friend, have played your hand inspirationally. You meet each challenge head on, and rather than being angry with the world, you continuously thank those whom are walking beside you through it. You recognize you are blessed- I hope you also realize you are a blessing to many. You spoke with a messenger from God the other day- an Angel- see- even God knows how special you are! Keep fighting Phil- you are winning the battle.
I had so much fun this weekend. Loved picking out the 10foot tree and putting it up and the lights on it. I love doing projects with you. Hope to see you again before the family Christmas party.
Phil, I just figured out how to respond to your post (I think) or I would have written sooner! Maybe I'll conquer facebook next. 🙂 I'm so glad the surgery went well. I'm anxious to get an update to share with the prayer chain. My mom and her Bible study group have also been inquiring. Hope you're continuing to mend. My daughter enjoyed meeting you. We are continually in our thoughts and prayers! Miss you!


text:
Cohortias Blog>
Sanofi and GSK vaccine starts clinical trial in Colombia.
The National Institute for Food and Drug Surveillance, Invima, reported the start of phase III clinical trials in the country of the vaccine against Covid-19.
The National Institute for Food and Drug Surveillance, Invima, reported that it endorsed the protocols of the French pharmaceutical company Sanofi Pasteur and the British laboratory GSK for the start of phase III clinical trials in the country of the vaccine against Covid-19.
After the approval of the phases I and II, that evaluated the safety and efficacy of the drug, the following studies are available in seven research centers in the towns of Bogotá, Cali, Floridablanca (Santander), Barranquilla, Soledad (Atlántico), Chía and Girardot (Cundinamarca).
For this purpose, these laboratories need around 2,500 volunteers over 18 years of age. And those interested in participating should contact the Foundation's research centers North University Hospital, located in Soledad, Atlántico; Clínica de la Costa Ltda., In Barranquilla; the Center for Studies in Pediatric Infectology, in Cali; the Fundación Cardiovascular de Colombia, in Floridablanca, Santander; and the Medical Care and Research centers in Bogotá, Chía and Girardot.
PrevPreviousClinical Trials – The future of Oncology trials.
NextFirst in Patient – Microbiome Protector for Patients with Hematologic Malignancies.Next


text:
Palmarès

Club

Competizioni nazionali

Genk: 1997-1998

Arminia Bielefeld: 1998-1999

Altri progetti

Collegamenti esterni

Calciatori della Nazionale belga

redpajama_set_name: RedPajamaWikipedia


text:
A gateway to Melbourne's research publications
Minerva Access is the University's Institutional Repository. It aims to collect, preserve, and showcase the intellectual output of staff and students of the University of Melbourne for a global audience.
Minerva Access
Engineering and Information Technology
Electrical and Electronic Engineering - Research Publications
Automated Scoring of Obstructive Sleep Apnea and Hypopnea Events Using Short-Term Electrocardiogram Recordings
Khandoker, AH; Gubbi, J; Palaniswami, M
IEEE Transactions on Information Technology in Biomedicine
IEEE-INST ELECTRICAL ELECTRONICS ENGINEERS INC
University of Melbourne Author/s
KHANDOKER, AHSAN; GUBBI LAKSHMINARASIMHA, JAYAVARDHANA; Palaniswami, Marimuthu
Khandoker, A. H., Gubbi, J. & Palaniswami, M. (2009). Automated Scoring of Obstructive Sleep Apnea and Hypopnea Events Using Short-Term Electrocardiogram Recordings. IEEE TRANSACTIONS ON INFORMATION TECHNOLOGY IN BIOMEDICINE, 13 (6), pp.1057-1067. https://doi.org/10.1109/TITB.2009.2031639.
This item is currently not available from this repository
10.1109/TITB.2009.2031639
ARC Grant code
ARC/LP0454378
Obstructive sleep apnea or hypopnea causes a pause or reduction in airflow with continuous breathing effort. The aim of this study is to identify individual apnea and hypopnea events from normal breathing events using wavelet-based features of 5-s ECG signals (sampling rate = 250 Hz) and estimate the surrogate apnea index (AI)/hypopnea index (HI) (AHI). Total 82,535 ECG epochs (each of 5-s duration) from normal breathing during sleep, 1638 ECG epochs from 689 hypopnea events, and 3151 ECG epochs from 1862 apnea events were collected from 17 patients in the training set. Two-staged feedforward neural network model was trained using features from ECG signals with leave-one-patient-out cross-validation technique. At the first stage of classification, events (apnea and hypopnea) were classified from normal breathing events, and at the second stage, hypopneas were identified from apnea. Independent test was performed on 16 subjects' ECGs containing 483 hypopnea and 1352 apnea events. The cross-validation and independent test accuracies of apnea and hypopnea detection were found to be 94.84% and 76.82%, respectively, for training set, and 94.72% and 79.77%, respectively, for test set. The Bland-Altman plots showed unbiased estimations with standard deviations of +/- 2.19, +/- 2.16, and +/- 3.64 events/h for AI, HI, and AHI, respectively. Results indicate the possibility of recognizing apnea/hypopnea events based on shorter segments of ECG signals.
Artificial Intelligence and Image Processing
Export Reference in RIS Format
Click on "Export Reference in RIS Format" and choose "open with... Endnote".
Click on "Export Reference in RIS Format". Login to Refworks, go to References => Import References
Electrical and Electronic Engineering - Research Publications [1014]
Minerva Elements Records [76387]
Minerva AccessDepositing Your Work (for University of Melbourne Staff and Students)NewsFAQs
BrowseCommunities & CollectionsBy Issue DateAuthorsTitlesSubjectsThis CollectionBy Issue DateAuthorsTitlesSubjects
My AccountLoginRegister
StatisticsMost Popular ItemsStatistics by CountryMost Popular Authors


text:
Morgan Stanley (MS)
Ask 0.00 x 800
52-week range 72.05 - 109.73
Market cap 162.241B
PE ratio (TTM) 15.75
EPS (TTM) 6.15
Earnings date 12 Apr 2023 - 17 Apr 2023
Forward dividend & yield 3.10 (3.21%)
Ex-dividend date 30 Jan 2023
1y target est 100.65
Morgan Stanley Global Sports & Entertainment returns to Mobile, AL as the Exclusive Financial Education Sponsor of the Reese's Senior Bowl
NEW YORK, January 27, 2023--Morgan Stanley Global Sports & Entertainment (GSE), a division of Morgan Stanley Wealth Management, remains the exclusive financial education sponsor of the Reese's Senior Bowl for the ninth consecutive year. After being limited to virtual engagements for the past 2 years due to concerns and precautions from COVID-19, Morgan Stanley GSE returns to Mobile, AL in-person to participate in this year's week of festivities and engagements.
Morgan Stanley Has Been Transformed by Wealth Management. Now, It's Doubling Down.
A few years ago, the large Wall Street bank Morgan Stanley (NYSE: MS) traded in the middle of its peer group when it came to valuation. Morgan Stanley achieved this by building out a growing stream of wealth and investment management revenue that has been more consistent and durable than its large investment banking and trading businesses. Wealth and investment management has also allowed Morgan Stanley to generate high returns and has also been more capital efficient, which is a big plus as banks continue to need to hold more regulatory capital.


Are you confused while selecting mutual fund dividend or mutual fund growth option? Are you not clear how your selection will impact your investment portfolio?
What does Mutual fund scheme mean?
Mutual fund dividend payout option – Declared dividend amount will be paid back to you and your fund value will be reduced by declared amount.
If AMC declared dividend of Rs 2 per unit and you have 100 Units with NAV of Rs 10 then you will get Rs 200 as dividend and fund value will be become Rs 800. So you will get your own money back after reducing from your fund value. This dividend amount will be tax free as of now.
Mutual fund dividend ReInvest option – Declared dividend amount will be reinvested in same portfolio and NAV will be reduced by declared amount.
If AMC declared dividend of Rs 2 per unit and you have 100 Units with NAV of Rs 10 then the fund NAV will be become Rs 8 and you will get additional units of Rs 200 with NAV of Rs 8(25 units more). So your total numbers of Units will be increased and fund value will be remaining same. Hidden clause – Every reinvestment transaction will have separate lock in period.
The fund value and NAV will grow based on mutual fund investment performance. It does not depend of dividend declared. So, for same mutual fund scheme, NAV of growth option will be higher then dividend option.
Should I buy Mutual fund dividend or growth?
It depends purely and only on your investment decision.
Should I buy dividend payout option for ELSS or Tax saving mutual fund?
If you are thinking purely for tax saving perspective and does not believe in long term investment then you can consider dividend payout option. Again, I suggest you should consider growth option because ELSS or tax saving Mutual fund has lock in period of only 3 years. So you can get entire fund value at one time.
Does Growth option give higher retunes than dividend option?
You can not predict which fund option will perform better than other.It is driven by equity market trends.
So dividend options worked for you. If you have chosen growth fund then Rs 10000 will be reduced to lower fund value.
Case#2 you get dividend of Rs 3000 and remaining fund value Rs 7000.The Equity market grows up drastically from next day then only Rs 7000 will be increased to higher fund value. So dividend option did not work for you to get benefits of Bull Run of equity market. If you have chosen growth fund then Rs 10000 will be increased to higher fund value.
So, understand your goals before selecting mutual fund growth or dividend option. Do not think about short term gain and plan for long term gains.
I suggest Mutual fund investment through SIP in Growth fund.
Growth is not the right option all the time. Consider a bear market and then a bull market. If the index reaches back to the same point NAV will not move at all. In short the return will be zero.
Like 2007 sensex was 20000, which was recalimed only in 2010. So for 3 years the return would be zero. I am assuming that NAV move parallel to the index over the short term and also the long term, which is quiet realistic assumption.
In growth option your only return can be NAV appreciation. While in dividend it wll be NAV appreciated and also the declared dividends.
Dividend option gives you an opportunity to encash on the increased AUM of the fund. So choose funds which declare regular dividends. Even in bear market they will share some of the captial appreciation with the investors. Some good examples are HDFC Top 200, RSF Equity (Great dividend record), Templeton India Growth and many more.
Also dividend reinvest option in a way gives the best of both worlds. It also pays the dividend and allows you to mimic the growth option by reinvesting the capital.
In fact many noted investors / fund managers (Warren Buffet, Mark Mobius) look for good dividend paying stocks and mutual funds.
I hope you understand the difference between dividend of Mutual fund and Stock. Dividend amount of mutual fund will be deducted from fund value an d given back you.
True,It gives different return in growth and dividend payout option in bear and bull market and Nobody can predict tomorrow's market run.So let's assume you are investing 2000/Month for 10 years with goal in mind then growth will be better option.
your entire fund value will appreciate In growth option but your partial fund value (after deducting dividend)will grow in dividend payout option.
-- This is just a matter of perspective. Owning a stock is owning a business. Company has the right to reinvest the profit of the business or give it back to the investor as dividend. In this matter the dividend is same in both stock and mf. The line of difference lies in the fact that every unit of MF is not a share and every NFO is not an IPO.
What do you consider as your own money? I dont consider capital appreciating as my own money. That appreciation is the profit which I have earned for the risk which I have taken in the asset class. My money here is only the investment that I have made, rest is the return on risk and my judgement. If a investor buys an MF at an inflated NAV in the name of dividend payout, I will say he is getting back his own money, but not the investor who faithfully held on to the fund. Because it was the second investor who bought the fund at the lower price and saw his capital appreciate over time.
So let's assume you are investing 2000/Month for 10 years with goal in mind then growth will be better option.
---There si dividend reinvest option as well and it is safer than the growth option also.
--- Yes the entire fund value will appreciate, but only after it reclaims back the loss of 3 years. In these 3 years your fund value would have remains the same and sensex had reached the same level. While in dividned pay out mode you will be paid out some income, while in dividend reinvest you will be reinvesting your profits.
Think about bull and bear market condition in all scenario.
NAV grows by Rs 10 so Current NAV RS 20 = FV RS 2000.
so dividend amount will be deducted in your fund value and given back to you after deducting from fund value.
-in share dividend, your investment(nos of share*share price) will be remain as it is and divident is pure profit shared with you.
NAV falls by Rs 10 so Current NAV RS 10 = FV RS 1000.
==dividend payout is not profit of mutual fund company.
==it can be profit or loss of your fund value shared with you.
in both case your money including dividend will remain invested in market so you can not say dividend reinvest is safer than growth.your fund value will remain same even after dividend reinvested(only nos of units will increse) similar to growth option.
==major drawback of dividend reinvst - every reinvest have seperate lock in period.
in divident payout,your current fund value +divident (your profit) together will(may) be less than what you have invested in 2007.
WHY: When bull market started(may2009),your entire money grows in growth option.
-- I dont think the Rs 10 capital appreciation can be called as my own money. That is just he profit that I have earned for the risk I have taken by investing in equity. My money here is just Rs 1000 investments. Rest is profit and that profit is subject to market volatility as is the case in growth MF also. Dividend option allows you to reclaim some of this profit, but in growth if you want to claim this profit, you have to redeem the unit. Full stop.
-- Like I already pointed out --> You are just thinking of ELSS which have a lockin period of 3 years. MF dont have a lockin, only exit load (1%) if redeemed within a year. That applies to growth option also.
==WHY: When bull market started(may2009),your entire money grows in growth option.
This will only happen when your NAV for growth scheme reaches back to the 2007 level. In 2007 market was at peak so were NAVs of most schemes. They fell in 2008 and now are back to same level as 2007. So net profit is zero.
I would say dont go by analyst and try to apply a bit of maths to your investments as well. Analyst generally tend to say what is good about an investment and how markets will move, but seldom are they right.
For instance, you might have seen many of advisors advising about online term insurance. But here is the catch. Online term plans are provided by companies which have bad claim ratio. Analyst dont take that into consideration. There is not much service provided and the employees of insurance company also dont know much about that plan. (I myself have enquired about this). Analyst dont tell you all these things on TV. They just look at things from a high level.
Say Mr.A invests in a MF at NAV 50 (100 units). Over time NAV appreicated to say 56 (long term not short term >1 year ).
Now Mr. B also buys 100 units at NAV 56.
Here Mr. B received a total of Rs 400, of which 200 was his actual profit or capital appreciation, but the rest 200 was his own money as I would call it as that was taken out of his invesment.
On the other hand Mr A. was better off receiving a part of the profit or capital appreciation (just in case if market had fallen). He could have got that deposited in his savings account or reinvested it back in the MF. If market had fallen he would be happy that he could encash some profit. If market had gone up, he would be better if he had reinvested. It is a matter of choice he makes.
It is my feeling that analyst generally tend to ignore this thing. The question that I would ask to them is what do you consider as your own money : your principal or the appreciation in your principal? My answer will be prinicpal, rest is profit.
Well one should read between the line at that link. The author says that gains are same in both the option only problem is tax implication, but that is only if you are a short term player. Over a long term, which I belive most of us are :) we dont have to worry about we choose growth or dividend.
My feeling has been that dividend reinvest offers best of both growth and dividned payout.
Thanks for spending more time and replying in detail.Sorry for the delayed response.
i would like to say. If selected mutual fund is good then fund options like dividend or growth will not impact much on ultimate returns.
fund options selection will depend on elss fund,long or short term investment,regular income or one time return.
as you said you believe in dividend reinvest and i believe in growth option.
Both hindu newpaper link and vro link says and we know returns in both cases will be identical only.
As mentioned by you in example of Mr. A and Mr. B,Many investors become Mr b because of lack of knowledge(getting dividend amount from own invested money).You can also choose dividend payout with proper planning.


text:
Duluth Airshow Will Take Place This Summer with the U.S. Navy Blue Angels + More
David Drew Published: March 15, 2021
Great news for Duluthians and tourists alike as Duluth Airshow organizers announced that the show will go on this summer, with a limited number of people allowed each day.
This was made official when Minnesota Governor Tim Walz and the Minnesota Department of Health loosened COVID-19 restrictions across the state. The Duluth Airshow made the official announcement Friday on their Facebook page:
The Duluth Airshow, presented by Essentia Health and AAR will take place on June 26-27, 2021 featuring the U.S. Navy Blue Angels and the United States Air Force F-22 Raptor Demo Team.
Outdoor event gatherings in the State of Minnesota have been updated as of today allowing up to 10,000 people to attend the Duluth Airshow per day this Summer.
Duluth Airshow President Ryan Kern added, "The Duluth Airshow routinely draws upwards of 50,000 spectators over the weekend from across the Midwest. The Airshow places a high priority on the safety of its performers and spectators and will continue to work closely with the State of Minnesota to ensure compliance with all mandates including mask wearing and social distancing, as well as any other public health guidelines in place at the time of the Duluth Airshow."
You can click here for full details and to purchase all ticket types. Keep in mind that all ticket types are limited in availability. There is a chance that prior to the June 26 start date, the State of Minnesota could again change COVID-19 guidelines to allow additional tickets to be made available. If that occurs, available ticket quantities will be adjusted accordingly.
B105 is proud to be the official radio station for the Duluth Airshow. Keeps listening for show information and updates.
Filed Under: COVID-19 Coronavirus, Duluth Airshow, event
MMA Action Returns To Superior This Spring With 16-Fight Event
Alabama Announced As Wisconsin State Fair Headliner
Joe Nichols Joins The B105 Breakfast Club
Minnesota Launches Free COVID-19 Telehealth Treatment Pilot Program
Joe Nichols Headlining Show At Black Bear Casino
Here's Where You Can See Top Gun: Maverick Again In Duluth Area
NWS Of Duluth Holding Winter Weather Spotter Classes
Minnesotans Can Now Order Additional Free At-Home COVID-19 Tests
Haunted Ship Has A Record-Breaking Year In 2022


Monserrat, S.; Ramis, C., "Dynamic stability of a three layer model with discontinous profile of wind and temperature", "Journal of the Atmospheric Sciences", Número 47, Pàgines 2108-2114, 1990. Article.
Monserrat, S.; Ramis, C., "Estabilidad dinámica de un modelo de tres capas para ondas gravitatorias troposféricas", "Anales de Física. Serie B", Volum 6, Pàgines 232-244, 1990. Article.
Ramis, C.; Monserrat, S., "Ondas gravitatorias troposféricas. Estudio de su estabilidad mediante modelos de capas", "Física de la Tierra. Universidad Complutense de Madrid", Número 3, Pàgines 232-244, 1990. Article.
Gomis, D.; Alonso, S., "Diagnosis of a cyclogenetic event in the Western Mediterranean using an objective technique for scale separation", "Monthly Weather Review", Volum 118, Pàgines 723-736, 1990. Article.
Ramis, C.; Jansà, A.; Alonso, S., "Sea breeze in Mallorca. A numerical study", "Meteorology and Atmospheric Physics", Número 42, Pàgines 249-258, 1990. Article.
Gomis, D.; Buzzi, A.; Alonso, S., "Diagnosis of mesoscale structures in cases of Lee Cyclogenesis during ALPEX", "Meteorology and Atmospheric Physics", Volum 43, Pàgines 49-57, 1990. Article.


Choose a Searcy, Arkansas nursing home below to view a detailed report including information on quality, staffing, deficiencies, patient reviews, ratings, and more.
Byrd Haven Nursing Home is a 85-bed for-profit facility that is not located within a hospital or continuing care retirement community.
Searcy Healthcare Center is a 245-bed for-profit facility that is not located within a hospital or continuing care retirement community.
Searcy has a total population of 18,928, of which 3,731 are children under the age of 18 and 3,012 are seniors 65 and older. The median age is 30.5.
The median family income is $41,334 while the median household income is $32,321. Roughly 12.73% of the population live in poverty.


Best price hot sale diy cake decorating mold 100 pieces frosting icing decorating tools kit set with a storage box, this product is a popular item this coming year. this product is a new item sold by Design Studio store and shipped from Singapore. *HOT SALE*-DIY Cake Decorating Mold- 100 Pieces Frosting Icing Decorating Tools Kit Set With A Storage Box comes at lazada.sg having a inexpensive expense of SGD29.90 (This price was taken on 27 May 2018, please check the latest price here). do you know the features and specifications this *HOT SALE*-DIY Cake Decorating Mold- 100 Pieces Frosting Icing Decorating Tools Kit Set With A Storage Box, let's examine the details below.
Make Braided Ropes, Roses, Basket Weaves and many more!
For detailed product information, features, specifications, reviews, and guarantees or any other question that's more comprehensive than this *HOT SALE*-DIY Cake Decorating Mold- 100 Pieces Frosting Icing Decorating Tools Kit Set With A Storage Box products, please go straight to the owner store that is due Design Studio @lazada.sg.
Design Studio can be a trusted shop that already is skilled in selling Bakeware products, both offline (in conventional stores) and internet based. many of the clientele are very satisfied to acquire products from your Design Studio store, that can seen together with the many upscale reviews written by their clients who have purchased products from the store. So there is no need to afraid and feel concerned about your products or services not up to the destination or not relative to precisely what is described if shopping in the store, because has many other buyers who have proven it.
Furthermore Design Studio provide discounts and product warranty returns when the product you get doesn't match what you ordered, of course with the note they feature. For example the product that we are reviewing this, namely "*HOT SALE*-DIY Cake Decorating Mold- 100 Pieces Frosting Icing Decorating Tools Kit Set With A Storage Box", they dare to offer discounts and product warranty returns if the products they sell don't match what exactly is described.
So, if you wish to buy or try to find *HOT SALE*-DIY Cake Decorating Mold- 100 Pieces Frosting Icing Decorating Tools Kit Set With A Storage Box however highly recommend you get it at Design Studio store through marketplace lazada.sg.
Why should you buy *HOT SALE*-DIY Cake Decorating Mold- 100 Pieces Frosting Icing Decorating Tools Kit Set With A Storage Box at Design Studio shop via lazada.sg?
Of course there are numerous advantages and benefits that you can get while you shop at lazada.sg, because lazada.sg is really a trusted marketplace and also have a good reputation that can give you security from all forms of online fraud. Excess lazada.sg in comparison with other marketplace is lazada.sg often provide attractive promotions for example rebates, shopping vouchers, free postage, and often hold flash sale and support that's fast and that's certainly safe. as well as what I liked is because lazada.sg can pay on the spot, that was not there in any other marketplace.


The summer solstice this Thursday, June 21, is the longest day of the year, the day that the sun is at its greatest strength in the Northern Hemisphere.
As the sun has grown in power this year, many of us have become acutely aware of the separation of children from their parents at the US border, the growing epidemic of suicides, school shootings which continue unabated, persistent racism and sexual abuse in every corner of society, to say nothing of the ecocide currently underway thanks to our way of life.
When we are abruptly awakened to what has been unseen, when we are flooded by the light of new awareness, we are likely to become overwhelmed. All of this heady new consciousness, symbolized by the sun, can pull us out of ourselves and send us into orbit.
At its extreme pole, solar consciousness symbolizes a detached, heady consciousness, one that heats the planet and our interactions, turning life into a desert of striving and an endless fight for survival.
Unbalanced, mind-made solar consciousness, taught to us from our first day of school, pulls us up up and away and into our heads, unmooring us from earth and body and all things common–be it common ground, common sense, or common decency.
In our shared social habit of imbalanced solar consciousness, we unwittingly disconnect ourselves from the sources of our true power–earth, body, and all things common–thereby creating the perfect social conditions for inaction and silence in the face of atrocity.
So if you are lost, if you are horrified by your own passivity and inability to chart a path of action to help address these social ills, know that you are not alone. We were raised to respond this way.
What is coming to light are the symptoms of a sick and diseased collective body. As members of the larger whole, we share in the trauma, dissociation, and disempowerment visited upon our shared body through generations of division and conquest.
But here's the thing: we may have been raised in a culture big on artifice and long on forgetfulness, but we were born to re-member. We are on the planet now to bring the severed and bloody parts of ourselves—and of our collective body—back together that we might heal and become whole, even holy.
We were born to embark on this great healing adventure of our time. To undertake the sacred healing journey of remembrance is to claim both our birthright and our legacy.
In nature, there is only one day of peak light each year, counterbalanced by only one day of deep darkness. In between, a changing rhythm of light and dark that is always and ever held in exquisite balance.
Let us become the balance in our heady and overly "bright" solar culture. You counter the effect of too much light by tending to the roots of sustenance and connection. We are being called to return to balance, we are being summoned to gather together and enter the dark, lunar realms of heart to listen and learn what Spirit has to say to us.
In ancient days, our ancestors came together in council to seek the guidance of Spirit and decide upon action to meet the challenges of their times The time of waiting for our leaders to act like elders, much less adults, is long past.
This Solstice, let us step up to the challenges and step into a sacred circle of focused intention and ask for guidance to help heal this battered and broken society, which is also our collective body.
If you are in Eugene, you are welcome to join us for the journey circle. If you are not in the area or cannot attend, I would encourage you to celebrate the solstice by taking some time attend to your roots, be it your body, your people, the earth, or your Spirit.
Join me in a journey circle the evening of Thursday, June 21, the solstice, outside in Eugene on our 14 acres from 7-9 pm.
The intent of this circle is to journey for the healing of the collective. Choose a topic that is of the greatest personal concern for your journey in the circle.
We will journey for guidance and suggestions of inspired action. We will share our intentions with each other beforehand and you may share your journey afterwards if you wish. The idea is to bring the guidance of Spirit to our big questions and to be of support to one another as we seek to find our way to meaningful action.
We'll have the fire pit going, bring a chair and/or blanket, a snack to share outside if you wish, and a device with the drumbeat.
This circle will be offered to everyone is a free gift, but I suggest that you research an organization before the circle to which to make a donation instead.
Excited for the solstice. You should do a Facebook Live. I would tune in to participate.


text:
"It wasn't a German aeroplane after all. The war hadn't broken out.
It was only an accident. The planes were flying over to do a bit of bombing practice
— at any rate they were carrying bombs —
and somebody had put his hands on the lever by mistake."
ORWELL'S CUFA ON STAGE
review of Coming Up for Air adaptation
"...But still the second bomb didn't fall. Another quarter of a minute or so, and I raised my head again. Some of the people were still rushing about, others were standing as if they'd been glued to the ground. From somewhere behind the houses a huge haze of dust had risen up, and through it a black jet of smoke was streaming upwards. And then I saw an extraordinary sight. At the other end of the market-place the High Street rises a little. And down this little hill a herd of pigs was galloping, a sort of huge flood of pig-faces. The next moment, of course, I saw what it was. It wasn't pigs at all, it was only the schoolchildren in their gas-masks. I suppose they were bolting for some cellar where they'd been told to take cover in case of air-raids. At the back of them I could even make out a taller pig who was probably Miss Todgers. But I tell you for a moment they looked exactly like a herd of pigs..."
The above excerpt explains the cover of the program for the stage adaptation of COMING UP FOR AIR that was performed in Vancouver March 8 - 12 [2005] to which my husband and I drove down to attend.
It was a FANTASTIC one-man-show with the actor, Bernard Cuffling, dressed like George Bowling and pantomiming the various scenarios as he narrated the story. The stage was set to look like a pub with two chairs and a round table with a pint of beer on it as the main props. The script used the best parts of the book, starting with his soapy neck from having to hurry out of the bathtub because the kids wanted in, then the walk along the Strand to get his new false teeth, then the drive in the country where he got the idea to secretly go to his childhood home with the money he'd won at the racetrack and hadn't told his wife about, then the drive to Lower Binfield and his disappointments there, including the fish pool having been turned into a rubbish-dump. The audience got the sense of being along with Bowling wherever he went listening to him going on and on and everything he was saying was so easy to relate to, because most of us have experienced exactly what he's talking about. I was in stitches half the time as Orwell is so hilariously funny. The audience totally loved it. Coming Up for Air is just as pertinent now as it was in its 1938 setting and I envy people who haven't read the book because they've still got it ahead of them to enjoy. ~ Jackie Jura
COMING UP ON UK STAGE
George Orwell's 'Coming Up For Air' (first stage production in UK), Edinburgh Fringe Festival 2008
ORWELL COMING UP FOR AIR


Really excellent website, bet you've spent hours on there.
Rather reminds me of old Popular Mechanics magazines. I have a couple dating back to the 30s and 40s and they are stuffed full of ideas like this, makes fascinating interesting reading.
its a pity that the links on some of the items are dead. Would have been nice if they had have cached them.
thats a good one. now i can have derusted unidentified bits of scrap iron.
I've been looking at this ... http://woodgears.ca/reader/alois/press.html and thinking about glogs.
Next winter i dont intend to be using the bio-boiler much at all!
God, there are some great ideas on that site.
This one ... http://www.tantel.ca/Sand%20Blaster.html shows a sand blasting cabinet similar to the the one KH made and posted on the VOD, but this chaps idea is to use an old liferaft canister.
Perhaps a little bigger than most people would need but most of the hard work is already done for you ... brilliant!
I wish I had some of these handy when some scallywag pulled my car out the way with his tractor and parked his dirty great trailer outside my house.
I Is An Oily Lickle Chimp.
when the shot falls down into the bottom of the cabinet, and is sucked back up to blow around again... anyone know how it's filtered out from the bits of rust etc.. ?
It's not, well the fine particles are drawn out in the dust extraction, but the larger bits get cycled around with the shot.
Or that's how the one I used to operate worked, but that was a proper industrial one, 5m x 4m, self loading using screw feeds in the floor, you didn't just put your hands in, you stood inside it !
GL eco+, 180L batches, quad condenser, SHHE, Squirrel, PID control.
Jon, many thanks for that, I'm sure it will be closely scrutinised by many members.
Congratulations on your 20,000th entry and on running such a great site ... keep up the good work.
Hi Jon, Thanks for the comments. It would be nice to see you getting into a bit of bio making, I'm sure it would lead to some extra pieces of equipment being made that none of us have thought of.
FOC water tests by Sandy brae or Karl Fischer for forum members.


If you love to travel, there's nothing more annoying than carrying your luggage through the entire city. Well, maybe you like to carry it around – if not, this is our coverage of where to store your luggage in London, UK.
Note: There are no self-service left lockers at London train stations or left luggage offices at the underground. But we have the best tip for you that want the cheapest and easiest way to get around this.
Discount Voucher: We have discount vouchers on this site for luggage storage. Read more below.
Press the icons to see details about each location, insurance, and price. This map includes all locations from LuggageHero™ and Excess Baggage Company™. The two leading providers of luggage storage in London.
Price starts from /Hour. Find your area below.
LuggageHero uses only certified shops and provides insurance () and specially designed insurance seals at over 120 different Luggage Storage Locations in London.
Luggage storage sites are located inside existing businesses, including retail outlets, hotels, cafes, and more. All are vetted by LuggageHero's local employee, who performs regular quality checks.
Featured in Lonely Planet and New York Times.
You never pay more than for the first 24 hours per bag.
Discount Vouchers? Click here to see if we have any available at the moment.
Provided in all shops to ensure the protection of your luggage. Learn more about the security seal here.
No reason to find the correct currency. Everything is paid online.
Cloakrooms at Westfield London Cloakroom can be found at their Shopmobility Concierge desk on level -2, Lift Lobby 2, and at our Click & Collect Lounge on Level -2 and Lift Lobby 1.
Cloakrooms at Westfield Stratford City Cloakroom can be found at their Concierge Desk on the Lower Ground Floor next to Carphone Warehouse.
Daily between 07:00 and 22:45.
Google Maps Link: Belgrove House, Belgrove Street, Kings Cross, London WC1H 8AA.
Use the map shown in the top of this site to see all the locations shown here.
If you're going to store luggage for more than just a few hours it's sometimes cheaper to use self-storage facilities at museums and galleries. But please be aware of sudden changes as London is on high alert for not leaving luggage behind at public spaces.
Please beware that the British Museum is very restricted on the luggage policy which you can read about here and how to get around it.
Below we've gathered a collection of museums and galleries in London where you are sometimes welcome to store luggage. Call ahead if you want to be 100% sure.
If you're planning to visit London by plane you could consider storing some of your belongings at London Airports using the self-serviced lockers.
Sightseeing and attractions just aren't the same with a suitcase in each hand and a backpack. This is the key reason why you should consider planning where to store your luggage while shopping and exploring the city of London.
Besides the struggling with unhandy suitcases, they also put a physical strain on you as you carry them around with you. Therefore, left luggage storage is the perfect service for you! While storing your luggage in a safe place you're able to enjoy your time in London.
Strict safety procedures are set in place to ensure the safety of your baggage. Each piece of baggage is sealed with a unique identification number for complete reassurance and to ensure no unauthorized access to your belongings. You will receive an automatic receipt to your email of the drop-off and pick-up of your baggage. The shop will ask to see a valid receipt from the phone before returning any baggage.
In the collaboration between cover holder First and one of the world's biggest insurance companies Lloyds we are proud of covering each piece of luggage free of charge every time using our luggage service. The insurance is covering up to per item luggage.
You single-handedly choose which place that is most comfortable according to your travel schedule using our Online Booking Engine and you can either book your luggage storage in advance or book on arrival in the shop.
LuggageStorage.London is a new site with a great overview of all options available throughout London from all major companies. Alternatively, take a look at the left luggage site from Visitor Londons website.