text:
/*-------------------------------------------------------------------------
 *
 * Created:		H5Ochunk.c
 *			Jul 13 2008
 *			Quincey Koziol <koziol@hdfgroup.org>
 *
 * Purpose:		Object header chunk routines.
 *
 *-------------------------------------------------------------------------
 */

/****************/
/* Module Setup */
/****************/

#define H5O_PACKAGE		/*suppress error about including H5Opkg	  */

/***********/
/* Headers */
/***********/
#include "H5private.h"		/* Generic Functions			*/
#include "H5Eprivate.h"		/* Error handling		  	*/
#include "H5Opkg.h"             /* Object headers			*/

/****************/
/* Local Macros */
/****************/

/******************/
/* Local Typedefs */
/******************/

/********************/
/* Package Typedefs */
/********************/

/********************/
/* Local Prototypes */
/********************/

/*********************/
/* Package Variables */
/*********************/

/* Declare the free list for H5O_chunk_proxy_t's */
H5FL_DEFINE(H5O_chunk_proxy_t);

/*****************************/
/* Library Private Variables */
/*****************************/

/*******************/
/* Local Variables */
/*******************/

/*-------------------------------------------------------------------------
 * Function:	H5O_chunk_add
 *
 * Purpose:	Add new chunk for object header to metadata cache
 *
 * Return:	Success:	Non-negative
 *		Failure:	Negative
 *
 * Programmer:	Quincey Koziol
 *		koziol@hdfgroup.org
 *		Jul 13 2008
 *
 *-------------------------------------------------------------------------
 */
herr_t
H5O_chunk_add(H5F_t *f, hid_t dxpl_id, H5O_t *oh, unsigned idx)
{
    H5O_chunk_proxy_t *chk_proxy = NULL;       /* Proxy for chunk, to mark it dirty in the cache */
    herr_t ret_value = SUCCEED;         /* Return value */

    FUNC_ENTER_NOAPI(H5O_chunk_add, FAIL)

    /* check args */
    HDassert(f);
    HDassert(oh);
    HDassert(idx < oh->nchunks);
    HDassert(idx > 0);

    /* Allocate space for the object header data structure */
    if(NULL == (chk_proxy = H5FL_CALLOC(H5O_chunk_proxy_t)))
	HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed")

    /* Set the values in the chunk proxy */
    chk_proxy->oh = oh;
    chk_proxy->chunkno = idx;

    /* Increment reference count on object header */
    if(H5O_inc_rc(oh) < 0)
        HGOTO_ERROR(H5E_OHDR, H5E_CANTINC, FAIL, "can't increment reference count on object header")

    /* Insert the chunk proxy into the cache */
    if(H5AC_set(f, dxpl_id, H5AC_OHDR_CHK, oh->chunk[idx].addr, chk_proxy, H5AC__NO_FLAGS_SET) < 0)
        HGOTO_ERROR(H5E_OHDR, H5E_CANTINSERT, FAIL, "unable to cache object header chunk")
    chk_proxy = NULL;

done:
    if(ret_value < 0)
        if(chk_proxy)
            chk_proxy = H5FL_FREE(H5O_chunk_proxy_t, chk_proxy);

    FUNC_LEAVE_NOAPI(ret_value)
} /* end H5O_chunk_add() */

/*-------------------------------------------------------------------------
 * Function:	H5O_chunk_protect
 *
 * Purpose:	Protect an object header chunk for modifications
 *
 * Return:	Success:	Non-negative
 *		Failure:	Negative
 *
 * Programmer:	Quincey Koziol
 *		koziol@hdfgroup.org
 *		Jul 17 2008
 *
 *-------------------------------------------------------------------------
 */
H5O_chunk_proxy_t *
H5O_chunk_protect(H5F_t *f, hid_t dxpl_id, H5O_t *oh, unsigned idx)
{
    H5O_chunk_proxy_t *chk_proxy;       /* Proxy for protected chunk */
    H5O_chunk_proxy_t *ret_value;       /* Return value */

    FUNC_ENTER_NOAPI(H5O_chunk_protect, NULL)

    /* check args */
    HDassert(f);
    HDassert(oh);
    HDassert(idx < oh->nchunks);

    /* Check for protecting first chunk */
    if(0 == idx) {
        /* Create new "fake" chunk proxy for first chunk */
        /* (since the first chunk is already handled by the H5O_t object) */
        if(NULL == (chk_proxy = H5FL_CALLOC(H5O_chunk_proxy_t)))
            HGOTO_ERROR(H5E_OHDR, H5E_CANTALLOC, NULL, "memory allocation failed")

        /* Increment reference count on object header */
        if(H5O_inc_rc(oh) < 0)
            HGOTO_ERROR(H5E_OHDR, H5E_CANTINC, NULL, "can't increment reference count on object header")

        /* Set chunk proxy fields */
        chk_proxy->oh = oh;
        chk_proxy->chunkno = idx;
    } /* end if */
    else {
        H5O_chk_cache_ud_t chk_udata;       /* User data for loading chunk */

        /* Construct the user data for protecting chunk proxy */
        /* (and _not_ decoding it) */
        HDmemset(&chk_udata, 0, sizeof(chk_udata));
        chk_udata.oh = oh;
        chk_udata.chunkno = idx;
        chk_udata.chunk_size = oh->chunk[idx].size;

        /* Get the chunk proxy */
        if(NULL == (chk_proxy = (H5O_chunk_proxy_t *)H5AC_protect(f, dxpl_id, H5AC_OHDR_CHK, oh->chunk[idx].addr, &chk_udata, H5AC_WRITE)))
            HGOTO_ERROR(H5E_OHDR, H5E_CANTPROTECT, NULL, "unable to load object header chunk")

        /* Sanity check */
        HDassert(chk_proxy->oh == oh);
        HDassert(chk_proxy->chunkno == idx);
    } /* end else */

    /* Set return value */
    ret_value = chk_proxy;

done:
    FUNC_LEAVE_NOAPI(ret_value)
} /* end H5O_chunk_protect() */

/*-------------------------------------------------------------------------
 * Function:	H5O_chunk_unprotect
 *
 * Purpose:	Unprotect an object header chunk after modifications
 *
 * Return:	Success:	Non-negative
 *		Failure:	Negative
 *
 * Programmer:	Quincey Koziol
 *		koziol@hdfgroup.org
 *		Jul 17 2008
 *
 *-------------------------------------------------------------------------
 */
herr_t
H5O_chunk_unprotect(H5F_t *f, hid_t dxpl_id, H5O_chunk_proxy_t *chk_proxy,
    unsigned chk_flags)
{
    herr_t ret_value = SUCCEED;        /* Return value */

    FUNC_ENTER_NOAPI(H5O_chunk_unprotect, FAIL)

    /* check args */
    HDassert(f);
    HDassert(chk_proxy);
    HDassert(!(chk_flags & (unsigned)~(H5AC__DIRTIED_FLAG | H5AC__SIZE_CHANGED_FLAG)));

    /* Check for releasing first chunk */
    if(0 == chk_proxy->chunkno) {
        /* Check for resizing the first chunk */
        if(chk_flags & H5AC__SIZE_CHANGED_FLAG) {
            /* Resize object header in cache */
            if(H5AC_resize_entry(chk_proxy->oh, chk_proxy->oh->chunk[0].size) < 0)
                HGOTO_ERROR(H5E_OHDR, H5E_CANTRESIZE, FAIL, "unable to resize chunk in cache")
        } /* end if */

        /* Check for dirtying the first chunk */
        if(chk_flags & H5AC__DIRTIED_FLAG) {
            /* Mark object header as dirty in cache */
            if(H5AC_mark_entry_dirty(chk_proxy->oh) < 0)
                HGOTO_ERROR(H5E_OHDR, H5E_CANTMARKDIRTY, FAIL, "unable to mark object header as dirty")
        } /* end else/if */

        /* Decrement reference count of object header */
        if(H5O_dec_rc(chk_proxy->oh) < 0)
            HGOTO_ERROR(H5E_OHDR, H5E_CANTDEC, FAIL, "can't decrement reference count on object header")

        /* Free fake chunk proxy */
        chk_proxy = H5FL_FREE(H5O_chunk_proxy_t, chk_proxy);
    } /* end if */
    else {
        /* Release the chunk proxy from the cache, marking it dirty */
        if(H5AC_unprotect(f, dxpl_id, H5AC_OHDR_CHK, chk_proxy->oh->chunk[chk_proxy->chunkno].addr, chk_proxy, chk_flags) < 0)
            HGOTO_ERROR(H5E_OHDR, H5E_CANTUNPROTECT, FAIL, "unable to release object header chunk")
    } /* end else */

done:
    FUNC_LEAVE_NOAPI(ret_value)
} /* end H5O_chunk_unprotect() */

/*-------------------------------------------------------------------------
 * Function:	H5O_chunk_update_idx
 *
 * Purpose:	Update the chunk index for a chunk proxy
 *
 * Return:	Success:	Non-negative
 *		Failure:	Negative
 *
 * Programmer:	Quincey Koziol
 *		koziol@hdfgroup.org
 *		Jul 13 2008
 *
 *-------------------------------------------------------------------------
 */
herr_t
H5O_chunk_update_idx(H5F_t *f, hid_t dxpl_id, H5O_t *oh, unsigned idx)
{
    H5O_chunk_proxy_t *chk_proxy;       /* Proxy for chunk, to mark it dirty in the cache */
    H5O_chk_cache_ud_t chk_udata;       /* User data for loading chunk */
    herr_t ret_value = SUCCEED;         /* Return value */

    FUNC_ENTER_NOAPI(H5O_chunk_update_idx, FAIL)

    /* check args */
    HDassert(f);
    HDassert(oh);
    HDassert(idx < oh->nchunks);
    HDassert(idx > 0);

    /* Construct the user data for protecting chunk proxy */
    /* (and _not_ decoding it) */
    HDmemset(&chk_udata, 0, sizeof(chk_udata));
    chk_udata.oh = oh;
    chk_udata.chunkno = idx;
    chk_udata.chunk_size = oh->chunk[idx].size;

    /* Get the chunk proxy */
    if(NULL == (chk_proxy = (H5O_chunk_proxy_t *)H5AC_protect(f, dxpl_id, H5AC_OHDR_CHK, oh->chunk[idx].addr, &chk_udata, H5AC_WRITE)))
        HGOTO_ERROR(H5E_OHDR, H5E_CANTPROTECT, FAIL, "unable to load object header chunk")

    /* Update index for chunk proxy in cache */
    chk_proxy->chunkno = idx;

    /* Release the chunk proxy from the cache, marking it deleted */
    if(H5AC_unprotect(f, dxpl_id, H5AC_OHDR_CHK, oh->chunk[idx].addr, chk_proxy, H5AC__DIRTIED_FLAG) < 0)
        HGOTO_ERROR(H5E_OHDR, H5E_CANTUNPROTECT, FAIL, "unable to release object header chunk")

done:
    FUNC_LEAVE_NOAPI(ret_value)
} /* end H5O_chunk_update_idx() */

/*-------------------------------------------------------------------------
 * Function:	H5O_chunk_delete
 *
 * Purpose:	Notify metadata cache that a chunk has been deleted
 *
 * Return:	Success:	Non-negative
 *		Failure:	Negative
 *
 * Programmer:	Quincey Koziol
 *		koziol@hdfgroup.org
 *		Jul 13 2008
 *
 *-------------------------------------------------------------------------
 */
herr_t
H5O_chunk_delete(H5F_t *f, hid_t dxpl_id, H5O_t *oh, unsigned idx)
{
    H5O_chunk_proxy_t *chk_proxy;       /* Proxy for chunk, to mark it dirty in the cache */
    H5O_chk_cache_ud_t chk_udata;       /* User data for loading chunk */
    herr_t ret_value = SUCCEED;         /* Return value */

    FUNC_ENTER_NOAPI(H5O_chunk_delete, FAIL)

    /* check args */
    HDassert(f);
    HDassert(oh);
    HDassert(idx < oh->nchunks);
    HDassert(idx > 0);

    /* Construct the user data for protecting chunk proxy */
    /* (and _not_ decoding it) */
    HDmemset(&chk_udata, 0, sizeof(chk_udata));
    chk_udata.oh = oh;
    chk_udata.chunkno = idx;
    chk_udata.chunk_size = oh->chunk[idx].size;

    /* Get the chunk proxy */
    if(NULL == (chk_proxy = (H5O_chunk_proxy_t *)H5AC_protect(f, dxpl_id, H5AC_OHDR_CHK, oh->chunk[idx].addr, &chk_udata, H5AC_WRITE)))
        HGOTO_ERROR(H5E_OHDR, H5E_CANTPROTECT, FAIL, "unable to load object header chunk")

    /* Sanity check */
    HDassert(chk_proxy->oh == oh);
    HDassert(chk_proxy->chunkno == idx);

    /* Release the chunk proxy from the cache, marking it deleted */
    if(H5AC_unprotect(f, dxpl_id, H5AC_OHDR_CHK, oh->chunk[idx].addr, chk_proxy, (H5AC__DIRTIED_FLAG | H5AC__DELETED_FLAG | H5AC__FREE_FILE_SPACE_FLAG)) < 0)
        HGOTO_ERROR(H5E_OHDR, H5E_CANTUNPROTECT, FAIL, "unable to release object header chunk")

done:
    FUNC_LEAVE_NOAPI(ret_value)
} /* end H5O_chunk_delete() */


text:
IpcQueue
========

Linux IPC Queue in PHP

### usage

<pre>
include 'IpcQueue.class.php';
$queue = new IpcQueue();
$queue->send('Hello IpcQueue!');
var_dump($queue->revice()); //array('type' => 1, 'message' => 'Hello IpcQueue!')
</pre>

redpajama_set_name: RedPajamaGithub


text: from sanic.request import *


text:
package com.thoughtworks.go.config.rules;

import com.thoughtworks.go.config.*;
import com.thoughtworks.go.config.builder.ConfigurationPropertyBuilder;
import com.thoughtworks.go.config.validation.NameTypeValidator;
import com.thoughtworks.go.domain.ConfigErrors;
import com.thoughtworks.go.domain.config.Configuration;
import com.thoughtworks.go.domain.config.ConfigurationProperty;

import javax.annotation.PostConstruct;
import java.util.List;
import java.util.Map;
import java.util.Objects;

import static org.apache.commons.lang3.StringUtils.isBlank;

public abstract class RuleAwarePluginProfile implements Validatable, RulesAware {
    public static final String ID = "id";
    public static final String PLUGIN_ID = "pluginId";

    @ConfigAttribute(value = "id")
    private String id;

    @ConfigAttribute(value = "pluginId")
    private String pluginId;

    @ConfigSubtag
    private Configuration configuration;

    @ConfigSubtag
    private Rules rules = new Rules();

    @ConfigSubtag
    private Description description = new Description();

    public RuleAwarePluginProfile() {
        configuration = new Configuration();
    }

    private final ConfigErrors errors = new ConfigErrors();

    public RuleAwarePluginProfile(String id, String pluginId, Rules rules, ConfigurationProperty... configurationProperties) {
        this.id = id;
        this.pluginId = pluginId;
        this.configuration = new Configuration(configurationProperties);

        if (rules != null) {
            this.rules = rules;
        }
    }

    public Configuration getConfiguration() {
        return configuration;
    }

    public void addConfigurations(List<ConfigurationProperty> configurations) {
        ConfigurationPropertyBuilder builder = new ConfigurationPropertyBuilder();
        for (ConfigurationProperty property : configurations) {
            configuration.add(builder.create(property.getConfigKeyName(),
                    property.getConfigValue(),
                    property.getEncryptedValue(),
                    isSecure(property.getConfigKeyName())));
        }
    }

    public String getId() {
        return id;
    }

    public String getPluginId() {
        return pluginId;
    }

    public String getDescription() {
        return this.description.text;
    }

    public void setDescription(String description) {
        this.description.text = description;
    }

    //TODO: return clone instead?
    @Override
    public Rules getRules() {
        return this.rules;
    }

    @ConfigTag("description")
    public static class Description {
        @ConfigValue
        private String text;

        @Override
        public boolean equals(Object o) {
            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;

            Description that = (Description) o;

            return text != null ? text.equals(that.text) : that.text == null;
        }

        @Override
        public int hashCode() {
            return text != null ? text.hashCode() : 0;
        }
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        RuleAwarePluginProfile that = (RuleAwarePluginProfile) o;

        if (id != null ? !id.equals(that.id) : that.id != null) return false;
        if (pluginId != null ? !pluginId.equals(that.pluginId) : that.pluginId != null) return false;
        if (configuration != null ? !configuration.equals(that.configuration) : that.configuration != null)
            return false;
        if (rules != null ? !rules.equals(that.rules) : that.rules != null) return false;
        return description != null ? description.equals(that.description) : that.description == null;
    }

    @Override
    public int hashCode() {
        return Objects.hash(
                id.hashCode(),
                pluginId.hashCode(),
                configuration.hashCode(),
                (rules != null ? rules.hashCode() : 0),
                (description != null ? description.hashCode() : 0)
        );
    }

    @PostConstruct
    public void encryptSecureConfigurations() {
        if (hasPluginInfo()) {
            for (ConfigurationProperty configuration : this.getConfiguration()) {
                configuration.handleSecureValueConfiguration(isSecure(configuration.getConfigKeyName()));
            }
        }
    }

    @Override
    public ConfigErrors errors() {
        return errors;
    }

    @Override
    public void addError(String fieldName, String message) {
        errors().add(fieldName, message);
    }

    public boolean hasErrors() {
        return (!this.errors().isEmpty()) || rules.hasErrors() || configuration.hasErrors();
    }

    public void validateTree(ValidationContext validationContext) {
        validate(validationContext);
        configuration.validateTree();
        rules.validateTree(new DelegatingValidationContext(validationContext) {
            @Override
            public RulesValidationContext getRulesValidationContext() {
                return new RulesValidationContext(allowedActions(), allowedTypes());
            }
        });
    }

    @Override
    public void validate(ValidationContext validationContext) {
        configuration.validateUniqueness(getObjectDescription() + " " + (isBlank(id) ? "(noname)" : "'" + id + "'"));

        if (isBlank(id)) {
            addError(ID, getObjectDescription() + " cannot have a blank id.");
        }

        if (isBlank(pluginId)) {
            addError(PLUGIN_ID, getObjectDescription() + " cannot have a blank plugin id.");
        }

        if (new NameTypeValidator().isNameInvalid(id)) {
            addError(ID, String.format("Invalid id '%s'. %s", id, NameTypeValidator.ERROR_MESSAGE));
        }
    }

    public void setRules(Rules rules) {
        this.rules = rules;
    }

    protected abstract String getObjectDescription();

    protected abstract boolean isSecure(String key);

    protected abstract boolean hasPluginInfo();

    void validateIdUniqueness(Map<String, RuleAwarePluginProfile> profiles) {
        RuleAwarePluginProfile profileWithSameId = profiles.get(id);
        if (profileWithSameId == null) {
            profiles.put(id, this);
        } else {
            profileWithSameId.addError(ID, String.format(getObjectDescription() + " id '%s' is not unique", id));
            this.addError(ID, String.format(getObjectDescription() + " id '%s' is not unique", id));
        }
    }

    public List<ConfigErrors> getAllErrors() {
        return ErrorCollector.getAllErrors(this);
    }
}


text:
package com.google.gerrit.server.config;

import com.google.gerrit.extensions.registration.DynamicMap;
import com.google.gerrit.extensions.restapi.ChildCollection;
import com.google.gerrit.extensions.restapi.IdString;
import com.google.gerrit.extensions.restapi.ResourceNotFoundException;
import com.google.gerrit.extensions.restapi.RestView;
import com.google.inject.Inject;
import com.google.inject.Provider;

class TopMenuCollection implements
    ChildCollection<ConfigResource, TopMenuResource> {
  private final DynamicMap<RestView<TopMenuResource>> views;
  private final Provider<ListTopMenus> list;

  @Inject
  TopMenuCollection(DynamicMap<RestView<TopMenuResource>> views,
      Provider<ListTopMenus> list) {
    this.views = views;
    this.list = list;
  }

  @Override
  public RestView<ConfigResource> list() throws ResourceNotFoundException {
    return list.get();
  }

  @Override
  public TopMenuResource parse(ConfigResource parent, IdString id)
      throws ResourceNotFoundException {
    throw new ResourceNotFoundException(id);
  }

  @Override
  public DynamicMap<RestView<TopMenuResource>> views() {
    return views;
  }
}


text:
package biweekly.parameter;

import static biweekly.ICalVersion.V1_0;
import static biweekly.ICalVersion.V2_0;
import static biweekly.ICalVersion.V2_0_DEPRECATED;
import static biweekly.util.TestUtils.assertEqualsAndHash;
import static biweekly.util.TestUtils.assertEqualsMethodEssentials;
import static biweekly.util.TestUtils.assertListSize;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;

import org.junit.Before;
import org.junit.Test;

import biweekly.ICalDataType;
import biweekly.ICalVersion;

/**
 * @author Michael Angstadt
 */
public class ICalParametersTest {
	private ICalParameters params;

	@Before
	public void before() {
		params = new ICalParameters();
	}

	@Test
	public void case_insensitive() {
		//tests to make sure sanitizeKey() is implemented correctly
		//ListMultimapTest tests the rest of the get/put/remove methods
		params.put("NUMBERS", "1");
		assertEquals("1", params.first("numbers"));
	}

	@Test
	public void validate_empty() {
		assertListSize(0, params.validate(V2_0));
	}

	@Test
	public void validate_rsvp() {
		params.replace(ICalParameters.RSVP, "foo");
		assertListSize(1, params.validate(V2_0));

		params.replace(ICalParameters.RSVP, "true");
		assertListSize(0, params.validate(V2_0));

		params.replace(ICalParameters.RSVP, "false");
		assertListSize(0, params.validate(V2_0));

		params.replace(ICalParameters.RSVP, "TRUE");
		assertListSize(0, params.validate(V2_0));

		params.replace(ICalParameters.RSVP, "FALSE");
		assertListSize(0, params.validate(V2_0));
	}

	@Test
	public void validate_bad_values() {
		params.put(ICalParameters.CUTYPE, "foo");
		params.put(ICalParameters.FBTYPE, "foo");
		params.put(ICalParameters.PARTSTAT, "foo");
		params.put(ICalParameters.RANGE, "foo");
		params.put(ICalParameters.RELATED, "foo");
		params.put(ICalParameters.RELTYPE, "foo");
		params.put(ICalParameters.ROLE, "foo");
		params.put(ICalParameters.VALUE, "foo");

		assertListSize(8, params.validate(V2_0));
	}

	@Test
	public void validate_good_values() {
		params.put(ICalParameters.CUTYPE, CalendarUserType.GROUP.getValue());
		params.put(ICalParameters.FBTYPE, FreeBusyType.BUSY.getValue());
		params.put(ICalParameters.PARTSTAT, ParticipationStatus.ACCEPTED.getValue());
		params.put(ICalParameters.RANGE, Range.THIS_AND_FUTURE.getValue());
		params.put(ICalParameters.RELATED, Related.END.getValue());
		params.put(ICalParameters.RELTYPE, RelationshipType.CHILD.getValue());
		params.put(ICalParameters.ROLE, Role.CHAIR.getValue());
		params.put(ICalParameters.VALUE, ICalDataType.BINARY.getName());

		assertListSize(0, params.validate(V2_0));
	}

	@Test
	public void validate_deprecated_values() {
		params.put(ICalParameters.RANGE, Range.THIS_AND_PRIOR.getValue());
		assertListSize(0, params.validate(V1_0));
		assertListSize(0, params.validate(V2_0_DEPRECATED));
		assertListSize(1, params.validate(V2_0));
	}

	@Test
	public void validate_parameter_name() {
		params.replace("YES/NO", "value");
		assertListSize(0, params.validate(V1_0));
		assertListSize(1, params.validate(V2_0_DEPRECATED));
		assertListSize(1, params.validate(V2_0));

		params.clear();
		params.replace("NAME[]", "value");
		assertListSize(1, params.validate(V1_0));
		assertListSize(1, params.validate(V2_0_DEPRECATED));
		assertListSize(1, params.validate(V2_0));

		params.clear();
		params.replace("NAME", "value");
		assertListSize(0, params.validate(V1_0));
		assertListSize(0, params.validate(V2_0_DEPRECATED));
		assertListSize(0, params.validate(V2_0));
	}

	@Test
	public void validate_parameter_value_characters() {
		for (char c : ",.:=[]".toCharArray()) {
			params.replace("NAME", "value" + c);
			assertListSize(1, params.validate(V1_0));
		}

		char c = (char) 7;
		params.replace("NAME", "value" + c);
		for (ICalVersion version : ICalVersion.values()) {
			assertListSize(1, params.validate(version));
		}
	}

	@Test
	public void equals_essentials() {
		ICalParameters one = new ICalParameters();
		one.put("foo", "bar");
		assertEqualsMethodEssentials(one);
	}

	@Test
	public void equals_different_number_of_parameters() {
		ICalParameters one = new ICalParameters();
		one.put("foo", "one");

		ICalParameters two = new ICalParameters();
		two.put("foo", "one");
		two.put("foo", "two");

		assertNotEquals(one, two);
		assertNotEquals(two, one);
	}

	@Test
	public void equals_case_insensitive() {
		ICalParameters one = new ICalParameters();
		one.put("foo", "bar");

		ICalParameters two = new ICalParameters();
		two.put("FOO", "BAR");

		assertEqualsAndHash(one, two);
	}

	@Test
	public void equals_order_does_not_matter() {
		ICalParameters one = new ICalParameters();
		one.put("foo", "one");
		one.put("foo", "two");
		one.put("foo", "three");

		ICalParameters two = new ICalParameters();
		two.put("foo", "TWO");
		two.put("foo", "one");
		two.put("foo", "three");

		assertEqualsAndHash(one, two);
	}

	@Test
	public void equals_duplicate_values() {
		ICalParameters one = new ICalParameters();
		one.put("foo", "one");
		one.put("foo", "one");
		one.put("foo", "two");

		ICalParameters two = new ICalParameters();
		two.put("foo", "one");
		two.put("foo", "one");
		two.put("foo", "two");

		assertEqualsAndHash(one, two);
	}

	@Test
	public void equals_different_duplicates_same_value_size() {
		ICalParameters one = new ICalParameters();
		one.put("foo", "one");
		one.put("foo", "one");
		one.put("foo", "two");

		ICalParameters two = new ICalParameters();
		two.put("foo", "one");
		two.put("foo", "two");
		two.put("foo", "two");

		assertNotEquals(one, two);
		assertNotEquals(two, one);
	}

	@Test
	public void equals_multiple_keys() {
		ICalParameters one = new ICalParameters();
		one.put("foo", "BAR");
		one.put("super", "man");
		one.put("super", "bad");
		one.put("hello", "world");
		one.put(null, "null");

		ICalParameters two = new ICalParameters();
		two.put("hello", "world");
		two.put("super", "MAN");
		two.put("foo", "bar");
		two.put("super", "bad");
		two.put(null, "null");

		assertEqualsAndHash(one, two);
	}
}


text:
param($installPath, $toolsPath, $package, $project)

Write-Host "installPath:" "${installPath}"
Write-Host "toolsPath:" "${toolsPath}"

Write-Host " "

if ($project) {
	$dateTime = Get-Date -Format yyyyMMdd-HHmmss

	# Create paths and list them
	$projectPath = (Get-Item $project.Properties.Item("FullPath").Value).FullName
	Write-Host "projectPath:" "${projectPath}"
	$backupPath = Join-Path $projectPath "App_Data\NuGetBackup\$dateTime"
	Write-Host "backupPath:" "${backupPath}"
	$copyLogsPath = Join-Path $backupPath "CopyLogs"
	Write-Host "copyLogsPath:" "${copyLogsPath}"
	$webConfigSource = Join-Path $projectPath "Web.config"
	Write-Host "webConfigSource:" "${webConfigSource}"
	$configFolder = Join-Path $projectPath "Config"
	Write-Host "configFolder:" "${configFolder}"

	# Create backup folder and logs folder if it doesn't exist yet
	New-Item -ItemType Directory -Force -Path $backupPath
	New-Item -ItemType Directory -Force -Path $copyLogsPath

	# Create a backup of original web.config
	Copy-Item $webConfigSource $backupPath -Force

	# Backup config files folder
	if(Test-Path $configFolder) {
		$umbracoBackupPath = Join-Path $backupPath "Config"
		New-Item -ItemType Directory -Force -Path $umbracoBackupPath

		robocopy $configFolder $umbracoBackupPath /e /LOG:$copyLogsPath\ConfigBackup.log
	}

	# Copy umbraco and umbraco_files from package to project folder
	$umbracoFolder = Join-Path $projectPath "Umbraco"
	New-Item -ItemType Directory -Force -Path $umbracoFolder
	$umbracoFolderSource = Join-Path $installPath "UmbracoFiles\Umbraco"
	$umbracoBackupPath = Join-Path $backupPath "Umbraco"
	New-Item -ItemType Directory -Force -Path $umbracoBackupPath
	robocopy $umbracoFolder $umbracoBackupPath /e /LOG:$copyLogsPath\UmbracoBackup.log
	robocopy $umbracoFolderSource $umbracoFolder /is /it /e /xf UI.xml /LOG:$copyLogsPath\UmbracoCopy.log

	$umbracoClientFolder = Join-Path $projectPath "Umbraco_Client"
	New-Item -ItemType Directory -Force -Path $umbracoClientFolder
	$umbracoClientFolderSource = Join-Path $installPath "UmbracoFiles\Umbraco_Client"
	$umbracoClientBackupPath = Join-Path $backupPath "Umbraco_Client"
	New-Item -ItemType Directory -Force -Path $umbracoClientBackupPath
	robocopy $umbracoClientFolder $umbracoClientBackupPath /e /LOG:$copyLogsPath\UmbracoClientBackup.log
	robocopy $umbracoClientFolderSource $umbracoClientFolder /is /it /e /LOG:$copyLogsPath\UmbracoClientCopy.log

	$copyWebconfig = $true
	$destinationWebConfig = Join-Path $projectPath "Web.config"

	if(Test-Path $destinationWebConfig)
	{
		Try
		{
			[xml]$config = Get-Content $destinationWebConfig

			$config.configuration.appSettings.ChildNodes | ForEach-Object {
				if($_.key -eq "umbracoConfigurationStatus")
				{
					# The web.config has an umbraco-specific appSetting in it
					# don't overwrite it and let config transforms do their thing
					$copyWebconfig = $false
				}
			}
		}
		Catch { }
	}

	if($copyWebconfig -eq $true)
	{
		$packageWebConfigSource = Join-Path $installPath "UmbracoFiles\Web.config"
		Copy-Item $packageWebConfigSource $destinationWebConfig -Force
	}

	$installFolder = Join-Path $projectPath "Install"
	if(Test-Path $installFolder) {
		Remove-Item $installFolder -Force -Recurse -Confirm:$false
	}

	# Open appropriate readme
	if($copyWebconfig -eq $true)
	{
		$DTE.ItemOperations.OpenFile($toolsPath + '\Readme.txt')
	}
	else
	{
		$DTE.ItemOperations.OpenFile($toolsPath + '\ReadmeUpgrade.txt')
	}
}


text:
package io.descoped.container.tomcat.deployment;

import io.descoped.container.core.Deployment;
import io.descoped.container.core.ServerContainer;
import io.descoped.container.exception.DescopedServerException;
import io.descoped.container.extension.ClassLoaders;
import io.descoped.container.tomcat.core.TomcatContainer;
import org.apache.catalina.Context;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.WebResourceRoot;
import org.apache.catalina.core.StandardContext;
import org.apache.catalina.startup.Constants;
import org.apache.catalina.startup.ContextConfig;
import org.apache.catalina.startup.Tomcat;
import org.apache.catalina.webresources.StandardRoot;
import org.apache.tomcat.util.scan.StandardJarScanner;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.servlet.ServletException;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

/**
 * Created by oranheim on 03/02/2017.
 */
public class TomcatDeployment implements Deployment {

    private static final Logger log = LoggerFactory.getLogger(TomcatDeployment.class);
    private TomcatWebApp webapp;

    public void register(TomcatWebApp webapp) {
        this.webapp = webapp;
    }

    @Override
    public void deploy(ServerContainer container) {
        TomcatContainer server = (TomcatContainer) container;
        Tomcat tomcat = server.builder();

        tomcat.setBaseDir("./target");
        {
            Path target = Paths.get("./target").resolve("webapps/ROOT");
            try {
                Files.createDirectories(target);
            } catch (IOException e) {
                throw new DescopedServerException(e);
            }
        }
        tomcat.getServer().setParentClassLoader(ClassLoaders.tccl());

        StandardContext context = webapp.getStandardContext();

        StandardJarScanner standardJarScanner = new StandardJarScanner();
        standardJarScanner.setScanBootstrapClassPath(false);
        standardJarScanner.setScanClassPath(false);
        standardJarScanner.setScanAllDirectories(false);
        context.setJarScanner(standardJarScanner);

        context.addLifecycleListener(tomcat.getDefaultWebXmlListener());

        ContextConfig contextConfig = new ContextConfig();
        context.addLifecycleListener(contextConfig);
        contextConfig.setDefaultWebXml(Constants.NoDefaultWebXml);

        try {
            String webAppResources = new File("src/main/resources/webapp").getAbsolutePath();
            log.trace("ContextPath: {} -- WebAppResources: {}", server.getContextPath(), webAppResources);
            Context resourceContext = tomcat.addWebapp(webapp.getStandardContext().getPath(), webAppResources);
//            tomcat.addContext("/MyWebApp/images", "/tmp/images/");

            WebResourceRoot resources = new StandardRoot(resourceContext);
            context.setResources(resources);

        } catch (ServletException e) {
            throw new DescopedServerException(e);
        }

        log.trace("Deployment: {}", webapp.info());

        tomcat.getHost().addChild(context);
    }

    @Override
    public void undeploy(ServerContainer container) {
        TomcatContainer server = (TomcatContainer) container;
        try {
            server.builder().getServer().destroy();
        } catch (LifecycleException e) {
            throw new DescopedServerException(e);
        }
    }

}


text:
':' //; exec "$(command -v nodejs || command -v node)" "$0" "$@"
'use strict';

console.log('This example is demonstrated in this JSFiddle: https://jsfiddle.net/jacobfriesen/cxgv37x4/1/');

// function clean(text) {
//   const step1 = String(text).replace(/\u2028/g, '');
//   return String(text).replace(/\u2029/g, '');
// }

// const text1 = document.querySelector('#paragraph-separator').innerHTML
// console.log(JSON.parse(clean(text1)));

// const text2 = document.querySelector('#paragraph-separator').innerHTML
// console.log(JSON.parse(clean(text2)));


text:
module BitmexApi
  #
  class ConnectedUsers < BaseObject
    attr_accessor :users, :bots
    # attribute mapping from ruby-style variable name to JSON key
    def self.attribute_map
      {

        #
        :'users' => :'users',

        #
        :'bots' => :'bots'

      }
    end

    # attribute type
    def self.swagger_types
      {
        :'users' => :'Float',
        :'bots' => :'Float'

      }
    end

    def initialize(attributes = {})
      return if !attributes.is_a?(Hash) || attributes.empty?

      # convert string to symbol for hash key
      attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}

      if attributes[:'users']
        self.users = attributes[:'users']
      end

      if attributes[:'bots']
        self.bots = attributes[:'bots']
      end

    end

  end
end


text:
type T = $ObjMap<{ f: number }, () => string>;
declare var t: T;

// Annot_GetPropT
export const x2 = t.f;

// Annot_GetElemT
export const x3 = t[('': string)];

// Annot_ObjKitT Spread
export const x4 = { ...t };

// Annot_MakeExactT
declare var y5: $Exact<T>;
export const x5 = y5.f;

// Annot_ObjTestProtoT
declare export var x8: { __proto__: T };

// Annot_NotT
export const x11 = !t;

// Annot_ObjKeyMirror
declare var y12: $KeyMirror<T>;
export const x12 = y12.f;

// Annot_ObjMapConst
declare var y13: $ObjMapConst<T, any>;
export const x13 = y13.f;

// Annot_GetKeysT of Reason.t
declare var y14: $Keys<T>;
export const x14 = y14.length;


text:
  Library.LibDraggable.draggify(window)

  Notes: modified for FishItUp! by marcob@marcob.org
         1) moves frames and not windows anymore.
         2) reacts on RIGHT mouse clicks and not LEFT.
         3) added undraggify() method
]]--

if not Library then Library = {} end
local Draggable = {}
if not Library.LibDraggable then Library.LibDraggable = Draggable end

Draggable.DebugLevel = 0
Draggable.Version = "0.5-130712-20:34:32"

Draggable.printf = Library.printf.printf

Draggable.windows = {}

function Draggable.draggify(window, callback)
   if window   then
      local newtab = { dragging = false, x = 0, y = 0 }
      Draggable.windows[window] = newtab
      newtab.callback = callback
      local border = window
      border:EventAttach(Event.UI.Input.Mouse.Right.Down,      function(...) Draggable.rightdown(window, ...)        end, "draggable_right_down")
      border:EventAttach(Event.UI.Input.Mouse.Cursor.Move,     function(...) Draggable.mousemove(window, ...)        end, "draggable_mouse_move")
      border:EventAttach(Event.UI.Input.Mouse.Right.Up,        function(...) Draggable.rightup(window, ...)          end, "draggable_right_up")
      border:EventAttach(Event.UI.Input.Mouse.Right.Upoutside, function(...) Draggable.rightupoutside(window, ...)   end, "draggable_right_upoutside")
      Draggable.windows[window] = newtab
   end
end

function Draggable.undraggify(window, callback)
   if window   then
      local border = window

      Draggable.windows[window] = nil

      local a, b     =  nil, nil
      local EVENTS   =  { Event.UI.Input.Mouse.Right.Down,  Event.UI.Input.Mouse.Cursor.Move, Event.UI.Input.Mouse.Right.Up, Event.UI.Input.Mouse.Right.Upoutside }
      local event    =  nil
      local eventlist=  {}

      for _, event in ipairs(EVENTS) do
         local eventlist =  border:EventList(event)
         for a,b in pairs(eventlist) do
--             local c, d  =  nil, nil
--             for c, d in pairs(b) do print(string.format("a[%s] c[%s] d[%s]", a, c, d)) end
            border:EventDetach(event, b.handler, b.label)
         end
      end
   end
end

function Draggable.rightdown(window, event, ...)
   local win = Draggable.windows[window]
   if not win then
      Draggable.windows[window] = { dragging = false, x = 0, y = 0 }
      win = Draggable.windows[window]
   end
   win.dragging = true
   win.win_x = window:GetLeft()
   win.win_y = window:GetTop()
   local l, t, r, b = window:GetBounds()
   window:ClearAll()
   window:SetPoint("TOPLEFT", UIParent, "TOPLEFT", l, t)
   window:SetWidth(r - l)
   window:SetHeight(b - t)
   win.ev_x = Inspect.Mouse().x
   win.ev_y = Inspect.Mouse().y
end

function Draggable.mousemove(window, event, ...)
   local event, x, y = ...
   local win = Draggable.windows[window]
   if win and win.dragging then
      local win = Draggable.windows[window]
      local new_x = win.win_x + x - win.ev_x
      local new_y = win.win_y + y - win.ev_y
      window:SetPoint("TOPLEFT", UIParent, "TOPLEFT", new_x, new_y)
      if win.callback then
         win.callback(window, new_x, new_y)
      end
   end
end

function Draggable.rightup(window, event, ...)
   local win = Draggable.windows[window]
   if win then
      win.dragging = false
      win.ev_x = nil
      win.ev_y = nil
  end
end

function Draggable.rightupoutside(window, event, ...)
   local win = Draggable.windows[window]
   if win then
      win.dragging = false
      win.ev_x = nil
      win.ev_y = nil
   end
end


text:
from abc import ABCMeta, abstractmethod

class Selector(object):
    """
    Abstract Selector class.
    """

    __metaclass__ = ABCMeta

    @abstractmethod
    def select(self, instances):
        """
        The function called by WolphinProject to get a list of instances to work with.

        :param instances: the list of all available instances.
        :returns: a filtered/selected list of instances.
        """

        pass

class DefaultSelector(Selector):

    def select(self, instances):
        return instances

class InstanceNumberBasedSelector(Selector):
    """Selector that does instance selection based on instance numbers"""

    def __init__(self, instance_numbers=None):
        self.instance_numbers = [int(number) for number in instance_numbers or []]

    def select(self, instances=[]):
        if not self.instance_numbers:
            return instances
        get_instance_number = lambda instance: int(str((instance).tags.get("Name")).split(".")[-1])
        return ([instance
                 for instance in instances
                 if get_instance_number(instance) in self.instance_numbers])


text:
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Terraria;
using TAPI;
using Avalon.API.Items.MysticalTomes;

namespace Avalon.Items.MysticalTomes
{
    /// <summary>
    /// Tale of the Dolt.
    /// </summary>
    [TomeSkill(typeof(TaleOfTheDoltSkill))]
    public sealed class TaleOfTheDolt : ModItem
    {
        /// <summary>
        /// Called when the <see cref="Player" /> has the <see cref="Item" /> equipped.
        /// </summary>
        /// <param name="p">The <see cref="Player" /> that owns the <see cref="Item" />.</param>
        public override void Effects(Player p)
        {
            base.Effects(p);

            p.statManaMax2 += 20;
            p.statLifeMax2 += 20;

            p.meleeDamage += 0.05f;
        }
    }

    /// <summary>
    /// The tome skill of <see cref="TaleOfTheDolt" />.
    /// </summary>
    public sealed class TaleOfTheDoltSkill : SkillManager
    {
        /// <summary>
        /// Gets the cooldown of the skill, in ticks.
        /// </summary>
        public override int Cooldown
        {
            get
            {
                return 120;
            }
        }

        /// <summary>
        /// Activates the tome skill.
        /// </summary>
        /// <param name="p">The <see cref="Player" /> that activated the skill.</param>
        /// <remarks>No NetMessages have to be sent, this method is called on all clients and the server.</remarks>
        public override void Activate(Player p)
        {
            if (p.direction == 1)
            {
                if (p.statMana > 20)
                {
                    p.statLife += 20;
                    p.statMana -= 20;
                    p.HealEffect(20);
                }
            }
            else if (p.statLife > 20)
            {
                p.statMana += 20;
                p.statLife -= 5 ;
                p.ManaEffect(20);
            }
        }
    }
}


text:
(function() {
  var Interviewer, accessToken, allBusyFreeSlotsOn, assert, assertEqual, authorizationUrl, busyFreeToInterviewers, busyInterviewer, busyTime, doesTodayWorkAtAll, email, exampleBusyFree, exampleJSONresponseToBusyFree, exampleSuperBusy, exampleSuperBusyDayJSONresponseToBusyFree, freeSlots, freeSlotsCount, freeTime, getBusyFree, getEmailAddresses, givenDay, googleClientId, i, interviewer, interviewers, isTokenValid, knownBusyFreeSlots, knownEmailAddresses, nextDay, niceDateTimeFormat, params, parseParams, redirectUri, schedulesPossibleInNextWeek, slot, slotsThatWork, workingSlots, _i, _j, _len, _len1;

  knownEmailAddresses = ['willem.vanbergen@jadedpixel.com', 'aaron.olson@shopify.com', 'cody@shopify.com', 'florian.weingarten@shopify.com'];

  for (_i = 0, _len = knownEmailAddresses.length; _i < _len; _i++) {
    email = knownEmailAddresses[_i];
    $('select[name="email-addresses"]').append("<option>" + email + "</option>");
  }

  getEmailAddresses = function() {
    var emails;
    return emails = $('select[name="email-addresses"]').val();
  };

  googleClientId = '131318130111-kffqdc1iu7ot57s92ep3h36scsf2b38o.apps.googleusercontent.com';

  redirectUri = "http%3A%2F%2Flocalhost:4567/oauth2callback";

  authorizationUrl = "https://accounts.google.com/o/oauth2/auth?redirect_uri=" + redirectUri + "&response_type=token&client_id=" + googleClientId + "&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.readonly&approval_prompt=auto";

  $("button[name='authorize-with-google'").click(function() {
    console.log("Redirecting to Google authorization URL");
    return document.location.assign(authorizationUrl);
  });

  parseParams = function() {
    var chunk, params, queryString, regex;
    params = {};
    queryString = location.hash.substring(1);
    regex = /([^&=]+)=([^&]*)/g;
    while (chunk = regex.exec(queryString)) {
      params[decodeURIComponent(chunk[1])] = decodeURIComponent(chunk[2]);
    }
    return params;
  };

  isTokenValid = function(accessToken, callback) {
    var tokenInfoUrl;
    tokenInfoUrl = "https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=" + accessToken;
    jQuery.getJSON(tokenInfoUrl).done(function(json) {
      var validity;
      if (json.audience === googleClientId) {
        validity = true;
      }
      return callback(validity);
    }).fail(function(jqxhr, textStatus, error) {
      console.log("Request failed: " + textStatus + " " + error);
      return callback(false);
    });
    return void 0;
  };

  params = parseParams();

  accessToken = params.access_token;

  if (accessToken) {
    isTokenValid(params["access_token"], function(validity) {
      console.log("Is token valid? " + validity);
      if (!validity) {
        return alert("Looks like we need to re-authenticate with Google. Could you try hitting that button again?");
      }
    });
  }

  getBusyFree = function(accessToken, emailAddresses, callback) {
    var currentDate, data, tenDaysFromNow, url;
    url = "https://www.googleapis.com/calendar/v3/freeBusy?access_token=" + accessToken;
    currentDate = new Date;
    tenDaysFromNow = nextDay(currentDate, 10);
    data = {
      timeMin: currentDate.toISOString(),
      timeMax: tenDaysFromNow,
      timeZone: "-05:00",
      items: (function() {
        var _j, _len1, _results;
        _results = [];
        for (_j = 0, _len1 = emailAddresses.length; _j < _len1; _j++) {
          email = emailAddresses[_j];
          _results.push({
            "id": email
          });
        }
        return _results;
      })()
    };
    return jQuery.ajax({
      type: "POST",
      url: url,
      data: JSON.stringify(data),
      success: function(json) {
        return callback(json);
      },
      dataType: 'json',
      contentType: 'application/json'
    });
  };

  Interviewer = (function() {
    function Interviewer(email, busy) {
      this.email = email;
      this.busy = busy;
    }

    return Interviewer;

  })();

  busyFreeToInterviewers = function(busyFree) {
    var rest, _ref, _results;
    _ref = busyFree.calendars;
    _results = [];
    for (email in _ref) {
      rest = _ref[email];
      _results.push(new Interviewer(email, rest.busy));
    }
    return _results;
  };

  Interviewer.prototype.isFreeAtTime = function(queryTime) {
    var busyTime, endTime, free, startTime, _j, _len1, _ref;
    free = true;
    queryTime = new Date(queryTime);
    _ref = this.busy;
    for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {
      busyTime = _ref[_j];
      startTime = new Date(busyTime.start);
      endTime = new Date(busyTime.end);
      if (startTime <= queryTime && endTime >= queryTime) {
        free = false;
        break;
      }
    }
    return free;
  };

  Interviewer.prototype.busyFreeSlotsOn = function(day) {
    var advanceHour, freeSlots;
    day = new Date(day);
    day.setMinutes(0);
    day.setSeconds(0);
    freeSlots = (function() {
      var _j, _results;
      _results = [];
      for (advanceHour = _j = 0; _j < 7; advanceHour = ++_j) {
        day.setHours(10 + advanceHour);
        _results.push({
          free: this.isFreeAtTime(day),
          time: day.toString()
        });
      }
      return _results;
    }).call(this);
    return freeSlots;
  };

  Interviewer.prototype.freeSlotsCount = function(day) {
    var freeSlot, freeSlots;
    freeSlots = (function() {
      var _j, _len1, _ref, _results;
      _ref = this.busyFreeSlotsOn(day);
      _results = [];
      for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {
        freeSlot = _ref[_j];
        if (freeSlot.free === true) {
          _results.push(freeSlot);
        }
      }
      return _results;
    }).call(this);
    return freeSlots.length;
  };

  allBusyFreeSlotsOn = function(day, interviewers) {
    var interviewer, _j, _len1, _results;
    _results = [];
    for (_j = 0, _len1 = interviewers.length; _j < _len1; _j++) {
      interviewer = interviewers[_j];
      _results.push(interviewer.busyFreeSlotsOn(day));
    }
    return _results;
  };

  doesTodayWorkAtAll = function(day, interviewers) {
    var freeSlots, interviewer, totalFreeSlots, _j, _len1;
    totalFreeSlots = 0;
    for (_j = 0, _len1 = interviewers.length; _j < _len1; _j++) {
      interviewer = interviewers[_j];
      freeSlots = interviewer.freeSlotsCount(day);
      if (freeSlots < 1) {
        return false;
      }
      totalFreeSlots = freeSlots + totalFreeSlots;
    }
    if (totalFreeSlots < interviewers.length) {
      return false;
    }
    return true;
  };

  slotsThatWork = function(day, interviewers) {
    var allPermutations, interviewerOrder, timeSlot, timeSlots, timeSlotsForGivenInterviewerPermutation, _j, _len1, _ref;
    if (!doesTodayWorkAtAll(day, interviewers)) {
      return [];
    }
    timeSlots = (function() {
      var _j, _len1, _ref, _results;
      _ref = interviewers[0].busyFreeSlotsOn(day);
      _results = [];
      for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {
        timeSlot = _ref[_j];
        _results.push(timeSlot.time);
      }
      return _results;
    })();
    timeSlotsForGivenInterviewerPermutation = function(day, interviewers) {
      var interviewer, interviewerSlot, interviewersAvailable, workingSlots, _j, _k, _len1, _len2;
      interviewersAvailable = (function() {
        var _j, _len1, _results;
        _results = [];
        for (_j = 0, _len1 = interviewers.length; _j < _len1; _j++) {
          interviewer = interviewers[_j];
          _results.push({
            "interviewer": interviewer,
            "selected": false
          });
        }
        return _results;
      })();
      workingSlots = [];
      for (_j = 0, _len1 = timeSlots.length; _j < _len1; _j++) {
        timeSlot = timeSlots[_j];
        for (_k = 0, _len2 = interviewersAvailable.length; _k < _len2; _k++) {
          interviewerSlot = interviewersAvailable[_k];
          if ((interviewerSlot.selected !== true) && interviewerSlot.interviewer.isFreeAtTime(timeSlot)) {
            workingSlots.push({
              "timeSlot": timeSlot,
              "interviewer": interviewerSlot.interviewer.email
            });
            interviewerSlot.selected = true;
            break;
          }
        }
        if (workingSlots.length === interviewers.length) {
          break;
        }
      }
      return workingSlots;
    };
    allPermutations = function(input) {
      var permArr, permute, usedElements;
      permArr = [];
      usedElements = [];
      permute = function(input) {
        var element, i;
        i = 0;
        while (i < input.length) {
          element = input.splice(i, 1)[0];
          usedElements.push(element);
          if (input.length === 0) {
            permArr.push(usedElements.slice());
          }
          permute(input);
          input.splice(i, 0, element);
          usedElements.pop();
          i++;
        }
        return permArr;
      };
      return permute(input);
    };
    _ref = allPermutations(interviewers);
    for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {
      interviewerOrder = _ref[_j];
      timeSlots = timeSlotsForGivenInterviewerPermutation(day, interviewerOrder);
      if (timeSlots.length === interviewers.length) {
        return timeSlots;
      }
    }
    return [];
  };

  schedulesPossibleInNextWeek = function(interviewers) {
    var comingWeek, day, i, today, workingSlots, _j, _len1, _results;
    today = new Date();
    comingWeek = (function() {
      var _j, _results;
      _results = [];
      for (i = _j = 0; _j <= 6; i = ++_j) {
        _results.push(nextDay(today, i));
      }
      return _results;
    })();
    _results = [];
    for (_j = 0, _len1 = comingWeek.length; _j < _len1; _j++) {
      day = comingWeek[_j];
      _results.push(workingSlots = slotsThatWork(day, interviewers));
    }
    return _results;
  };

  $("#go").click(function() {
    var emailAddresses;
    emailAddresses = getEmailAddresses();
    return getBusyFree(accessToken, emailAddresses, function(busyFree) {
      var dateTime, day, interviewer, interviewers, schedules, slot, _j, _len1, _results;
      interviewers = busyFreeToInterviewers(busyFree);
      schedules = schedulesPossibleInNextWeek(interviewers);
      console.log(schedules);
      _results = [];
      for (_j = 0, _len1 = schedules.length; _j < _len1; _j++) {
        day = schedules[_j];
        _results.push((function() {
          var _k, _len2, _results1;
          _results1 = [];
          for (_k = 0, _len2 = day.length; _k < _len2; _k++) {
            slot = day[_k];
            interviewer = slot.interviewer;
            dateTime = niceDateTimeFormat(new Date(slot.timeSlot));
            _results1.push($("#schedule-results").append("
" + interviewer + "	 " + dateTime + "
"));
          }
          return _results1;
        })());
      }
      return _results;
    });
  });

  assert = function(condition, message) {
    if (!condition) {
      throw message || "Assertion failed";
    }
  };

  assertEqual = function(expected, actual, message) {
    if (expected !== actual) {
      throw message || console.log("Assertion failed; expected " + expected + " but was " + actual);
    }
  };

  nextDay = function(day, advance) {
    var date;
    date = new Date(day);
    date.setHours(0);
    date.setMinutes(0);
    date.setSeconds(0);
    date.setHours(24 * advance);
    return date;
  };

  niceDateTimeFormat = function(date) {
    var options;
    options = {
      weekday: "long",
      day: "numeric",
      month: "long",
      hour: "numeric",
      minute: "numeric",
      hour12: true
    };
    return date.toLocaleString("en-CA", options);
  };

  exampleJSONresponseToBusyFree = '{\n  "kind": "calendar#freeBusy",\n  "timeMin": "2013-11-30T05:00:00.000Z",\n  "timeMax": "2013-12-07T05:00:00.000Z",\n  "calendars": {\n    "interviewer@email.com": {\n      "busy": [\n        {\n          "start": "2013-12-02T15:00:00Z",\n          "end": "2013-12-02T15:15:00Z"\n        }\n      ]\n    }\n  }\n}';

  exampleBusyFree = JSON.parse(exampleJSONresponseToBusyFree);

  interviewers = busyFreeToInterviewers(exampleBusyFree);

  assert(interviewers[0].email === 'interviewer@email.com');

  assert(interviewers[0].busy[0].start === "2013-12-02T15:00:00Z");

  assert(interviewers[0].busy[0].end === "2013-12-02T15:15:00Z");

  interviewer = interviewers[0];

  busyTime = "2013-12-02T15:00:00Z";

  freeTime = nextDay(busyTime, 1);

  assert(!interviewer.isFreeAtTime(busyTime));

  assert(interviewer.isFreeAtTime(freeTime));

  givenDay = "2013-12-02T15:00:00Z";

  knownBusyFreeSlots = [
    {
      "free": false,
      "time": "Mon Dec 02 2013 10:00:00 GMT-0500 (EST)"
    }, {
      "free": true,
      "time": "Mon Dec 02 2013 11:00:00 GMT-0500 (EST)"
    }, {
      "free": true,
      "time": "Mon Dec 02 2013 12:00:00 GMT-0500 (EST)"
    }, {
      "free": true,
      "time": "Mon Dec 02 2013 01:00:00 GMT-0500 (EST)"
    }, {
      "free": true,
      "time": "Mon Dec 02 2013 02:00:00 GMT-0500 (EST)"
    }, {
      "free": true,
      "time": "Mon Dec 02 2013 03:00:00 GMT-0500 (EST)"
    }, {
      "free": true,
      "time": "Mon Dec 02 2013 04:00:00 GMT-0500 (EST)"
    }
  ];

  freeSlots = interviewer.busyFreeSlotsOn(givenDay);

  for (i = _j = 0, _len1 = freeSlots.length; _j < _len1; i = ++_j) {
    slot = freeSlots[i];
    assert(slot.free === knownBusyFreeSlots[i].free);
  }

  givenDay = "2013-12-02T15:00:00Z";

  freeSlotsCount = interviewer.freeSlotsCount(givenDay);

  assert(freeSlotsCount === 6);

  assert(doesTodayWorkAtAll(givenDay, [interviewer]));

  exampleSuperBusyDayJSONresponseToBusyFree = '{\n  "kind": "calendar#freeBusy",\n  "timeMin": "2013-11-30T05:00:00.000Z",\n  "timeMax": "2013-12-07T05:00:00.000Z",\n  "calendars": {\n    "interviewer@email.com": {\n      "busy": [\n        {\n          "start": "2013-12-02T15:00:00Z",\n          "end": "2013-12-02T23:15:00Z"\n        }\n      ]\n    }\n  }\n}';

  exampleSuperBusy = JSON.parse(exampleSuperBusyDayJSONresponseToBusyFree);

  busyInterviewer = busyFreeToInterviewers(exampleSuperBusy)[0];

  assert(!doesTodayWorkAtAll(givenDay, [busyInterviewer]));

  workingSlots = slotsThatWork(givenDay, [interviewer, interviewer]);

  assert(workingSlots[0].timeSlot === "Mon Dec 02 2013 11:00:00 GMT-0500 (EST)");

  assert(workingSlots[1].timeSlot === "Mon Dec 02 2013 12:00:00 GMT-0500 (EST)");

}).call(this);

//# sourceMappingURL=interview-scheduler.map


text:
import Heading from './Heading';
import React from 'react';
import ScheduleDisplay from './ScheduleDisplay';

export default function Schedule () {
  return (
    <aside className='mb-3'>
      <Heading />
      <ScheduleDisplay />
    </aside>
  );
}

Schedule.propTypes = {
};


text:
title: Continuous Delivery With Docker Swarm
shortTitle: Deploying With Docker Swarm
menus:
  pro/cd:
    title: Docker Swarm
    weight: 15
categories:
  - Docker
  - Deployment
tags:
  - deployment
  - swarm
  - docker
---

{% csnote info %}
You can find a sample repository for deploying with Docker Swarm and Codeship Pro on Github [here](https://github.com/codeship-library/example-voting-app).
{% endcsnote %}

* include a table of contents
{:toc}

Deploying your application with Docker Swarm and Codeship Pro is easy. You'll just need a few things:

- A provider to host your Swarm (AWS/Google Cloud/Azure/Etc)

- A Docker Compose V3 file to orchestrate your Swarm

- Your [codeship-services.yml file]({{ site.baseurl }}{% link _pro/builds-and-configuration/services.md %}) and [codeship-steps.yml file]({{ site.baseurl }}{% link _pro/builds-and-configuration/steps.md %}) to run your CI/CD pipeline on Codeship Pro

## Setup

### Compose V3 and codeship-services.yml

To deploy with Docker Swarm and Codeship Pro, an important first step is clarifying the difference between your [Docker Compose V3](https://docs.docker.com/compose/compose-file/) file and your [codeship-services.yml file]({{ site.baseurl }}{% link _pro/builds-and-configuration/services.md %}).

- The Docker Compose V3 file is intended to orchestrate your production container setup. Your Swarm deployment will rely on this file for knowing what to deploy and how to configure it.

- The [codeship-services.yml file]({{ site.baseurl }}{% link _pro/builds-and-configuration/services.md %}), while very similar in syntax to a Docker Compose file, is intended to outline the containers and commands you need for your CI/CD pipeline.

### Cloud Authentication

To deploy, you will also need to be able to authenticate with your cloud infrastructure provider. We provide documentation for general authentication, as well as sample code and integration images, with the common cloud providers:

- [AWS]({{ site.baseurl }}{% link _pro/continuous-deployment/aws.md %})
- [Google Cloud]({{ site.baseurl }}{% link _pro/continuous-deployment/google-cloud.md %})
- [Azure]({{ site.baseurl }}{% link _pro/continuous-deployment/azure.md %})

If you have any specific authentication questions or need help, [contact our helpdesk](https://helpdesk.codeship.com).

## Deploying With Swarm

To deploy with Swarm, you will want to run a `docker stack deploy` command via your [codeship-steps.yml file]({{ site.baseurl }}{% link _pro/builds-and-configuration/steps.md %}).

The specifics of this command will depend on the specifics of your application, and we recommend reading the [Docker documentation](https://docs.docker.com) to learn more.

```yaml
- name: swarm-deploy
  service: your-app
  command: docker stack deploy --compose-file docker-stack.yml app
```

Note that this example is using a `docker` command. This will only work if the container can find a Docker host. In a normal use case, this example would be assuming that your container has already authenticated with and connected to an external resource, such as AWS or Google Cloud, where the Docker host that is expected to run these commands is available.

## Example Project

To learn more, you can [visit our sample repository](https://github.com/codeship-library/example-voting-app) to see a working example of using Compose V3 and Swarm to deploy to Google Cloud.


text:
package org.littlewings.infinispan.functionalmap;

import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
import java.util.stream.IntStream;

import org.infinispan.Cache;
import org.infinispan.distribution.DistributionInfo;
import org.infinispan.distribution.DistributionManager;
import org.infinispan.functional.FunctionalMap;
import org.infinispan.functional.impl.FunctionalMapImpl;
import org.infinispan.functional.impl.ReadOnlyMapImpl;
import org.infinispan.functional.impl.ReadWriteMapImpl;
import org.infinispan.functional.impl.WriteOnlyMapImpl;
import org.infinispan.manager.DefaultCacheManager;
import org.infinispan.manager.EmbeddedCacheManager;
import org.jboss.logging.Logger;

public class FunctionalMapRunner {
    public static void main(String... args) throws IOException {
        EmbeddedCacheManager manager = new DefaultCacheManager("infinispan.xml");

        Cache<String, Integer> cache = manager.getCache("distributedCache");

        System.out.printf("server[%s] started.%n", manager.getAddress());

        IntStream.rangeClosed(1, 100).forEach(i -> cache.put("key" + i, i));

        FunctionalMapImpl<String, Integer> functionalMap = FunctionalMapImpl.create(cache.getAdvancedCache());
        FunctionalMap.ReadOnlyMap<String, Integer> readOnlyMap = ReadOnlyMapImpl.create(functionalMap);
        FunctionalMap.WriteOnlyMap<String, Integer> writeOnlyMap = WriteOnlyMapImpl.create(functionalMap);
        FunctionalMap.ReadWriteMap<String, Integer> readWriteMap = ReadWriteMapImpl.create(functionalMap);

        DistributionManager dm = cache.getAdvancedCache().getDistributionManager();

        System.out.println("============ single key ============");

        cache.keySet().forEach(key -> {
            DistributionInfo di = dm.getCacheTopology().getDistribution(key);
            System.out.printf("pattern-1: location / key[%s]: primary[%s] / backup%s%n", key, di.primary(), di.writeBackups());

            readOnlyMap.eval(key, entry -> {
                Logger logger = Logger.getLogger("lambda-logger");
                logger.infof("pattern-1: read-only / key[%s]%n", key);
                return entry.get();
            }).join();

            writeOnlyMap.eval(key, di.primary().toString(), (param, entry) -> {
                Logger logger = Logger.getLogger("lambda-logger");
                logger.infof("pattern-1: write-only / key[%s]: primary = %s%n", key, param);
            }).join();

            readWriteMap.eval(key, di.primary().toString(), (param, entry) -> {
                Logger logger = Logger.getLogger("lambda-logger");
                logger.infof("pattern-1: read-write / key[%s]: primary = %s%n", key, param);
                return null;
            }).join();
        });

        System.out.println("============ many key ============");
        for (int i = 1; i <= 100; i += 4) {
            Set<String> keys = new HashSet<>();
            for (int j = 0; j < 4; j++) {
                if (i + j <= 100) {
                    keys.add("key" + (i + j));
                }
            }

            readOnlyMap.evalMany(keys, entry -> {
                Logger logger = Logger.getLogger("lambda-logger");
                logger.infof("pattern-2: read-only / key[%s]%n", entry.key());
                return entry.get();
            });

            writeOnlyMap.evalMany(keys, entry -> {
                Logger logger = Logger.getLogger("lambda-logger");
                logger.infof("pattern-2: write-only / key[%s]%n", entry.key());
            }).join();

            readWriteMap.evalMany(keys, entry -> {
                Logger logger = Logger.getLogger("lambda-logger");
                logger.infof("pattern-2: read-write / key[%s]%n", entry.key());
                return null;
            });
        }

        cache.stop();
        manager.stop();
    }
}


text:
#ifndef OPENVSWITCH_TYPES_H
#define OPENVSWITCH_TYPES_H 1

#include <linux/types.h>
#include <sys/types.h>
#include <stdint.h>

#ifdef __CHECKER__
#define OVS_BITWISE __attribute__((bitwise))
#define OVS_FORCE __attribute__((force))
#else
#define OVS_BITWISE
#define OVS_FORCE
#endif

/* The ovs_be<N> types indicate that an object is in big-endian, not
 * native-endian, byte order.  They are otherwise equivalent to uint<N>_t.
 *
 * We bootstrap these from the Linux __be<N> types.  If we instead define our
 * own independently then __be<N> and ovs_be<N> become mutually
 * incompatible. */
typedef __be16 ovs_be16;
typedef __be32 ovs_be32;
typedef __be64 ovs_be64;

/* These types help with a few funny situations:
 *
 *   - The Ethernet header is 14 bytes long, which misaligns everything after
 *     that.  One can put 2 "shim" bytes before the Ethernet header, but this
 *     helps only if there is exactly one Ethernet header.  If there are two,
 *     as with GRE and VXLAN (and if the inner header doesn't use this
 *     trick--GRE and VXLAN don't) then you have the choice of aligning the
 *     inner data or the outer data.  So it seems better to treat 32-bit fields
 *     in protocol headers as aligned only on 16-bit boundaries.
 *
 *   - ARP headers contain misaligned 32-bit fields.
 *
 *   - Netlink and OpenFlow contain 64-bit values that are only guaranteed to
 *     be aligned on 32-bit boundaries.
 *
 * lib/unaligned.h has helper functions for accessing these. */

/* A 32-bit value, in host byte order, that is only aligned on a 16-bit
 * boundary.  */
typedef struct {
#ifdef WORDS_BIGENDIAN
        uint16_t hi, lo;
#else
        uint16_t lo, hi;
#endif
} ovs_16aligned_u32;

/* A 32-bit value, in network byte order, that is only aligned on a 16-bit
 * boundary. */
typedef struct {
        ovs_be16 hi, lo;
} ovs_16aligned_be32;

/* A 64-bit value, in host byte order, that is only aligned on a 32-bit
 * boundary.  */
typedef struct {
#ifdef WORDS_BIGENDIAN
        uint32_t hi, lo;
#else
        uint32_t lo, hi;
#endif
} ovs_32aligned_u64;

/* A 64-bit value, in network byte order, that is only aligned on a 32-bit
 * boundary. */
typedef struct {
        ovs_be32 hi, lo;
} ovs_32aligned_be64;

/* ofp_port_t represents the port number of a OpenFlow switch.
 * odp_port_t represents the port number on the datapath.
 * ofp11_port_t represents the OpenFlow-1.1 port number. */
typedef uint16_t OVS_BITWISE ofp_port_t;
typedef uint32_t OVS_BITWISE odp_port_t;
typedef uint32_t OVS_BITWISE ofp11_port_t;

/* Macro functions that cast int types to ofp/odp/ofp11 types. */
#define OFP_PORT_C(X) ((OVS_FORCE ofp_port_t) (X))
#define ODP_PORT_C(X) ((OVS_FORCE odp_port_t) (X))
#define OFP11_PORT_C(X) ((OVS_FORCE ofp11_port_t) (X))

#endif /* openvswitch/types.h */


text:
namespace tastefulserver {

UploadedFile::UploadedFile()
{
}

UploadedFile::UploadedFile(const ContentType & contentType)
    : m_contentType(contentType)
{
}

QVariant UploadedFile::toQVariant() const
{
    return QVariant::fromValue(*this);
}

void UploadedFile::setFilename(const QString & filename)
{
    m_filename = filename;
}

void UploadedFile::setContent(const QByteArray & content)
{
    m_content = content;
}

const QString &UploadedFile::getFilename() const
{
    return m_filename;
}

const QByteArray &UploadedFile::getContent() const
{
    return m_content;
}

const ContentType &UploadedFile::getContentType() const
{
    return m_contentType;
}

} // namespace tastefulserver


text:
                        {{ _("The basics") }}

                    Enter, r
                    {% trans %}Reply to message{% endtrans %}

                    c
                    {% trans %}New stream message{% endtrans %}

                    x
                    {% trans %}New private message{% endtrans %}

                    Esc, Ctrl + [
                    {% trans %}Cancel compose{% endtrans %}

                    d
                    {% trans %}View drafts{% endtrans %}

                    Down, j
                    {% trans %}Next message{% endtrans %}

                    End, G
                    {% trans %}Last message{% endtrans %}

                    n
                    {% trans %}Next unread topic{% endtrans %}

                    p
                    {% trans %}Next unread private message{% endtrans %}

                    P
                    {% trans %}All private messages{% endtrans %}

                    Ctrl + k, /
                    {% trans %}Initiate a search{% endtrans %}

                    ?
                    {% trans %}Show keyboard shortcuts{% endtrans %}

                        {{ _("Navigation") }}

                    Ctrl + k, /
                    {% trans %}Initiate a search{% endtrans %}

                    q
                    {% trans %}Search streams{% endtrans %}

                    w
                    {% trans %}Search people{% endtrans %}

                    Up, k
                    {% trans %}Previous message{% endtrans %}

                    Down, j
                    {% trans %}Next message{% endtrans %}

                    PgUp, K
                    {% trans %}Scroll up{% endtrans %}

                    PgDn, J, Space
                    {% trans %}Scroll down{% endtrans %}

                    End, G
                    {% trans %}Last message{% endtrans %}

                    Home
                    {% trans %}First message{% endtrans %}

                        {% trans %}Composing messages{% endtrans %}

                    Enter, r
                    {% trans %}Reply to message{% endtrans %}

                    R
                    {% trans %}Reply to author{% endtrans %}

                    >
                    {% trans %}Quote and reply to message{% endtrans %}

                    c
                    {% trans %}New stream message{% endtrans %}

                    x
                    {% trans %}New private message{% endtrans %}

                    @
                    {% trans %}Compose a reply @-mentioning author{% endtrans %}

                    Tab then Enter,
Ctrl + Enter
                    {% trans %}Send message{% endtrans %}

                    Shift + Enter
                    {% trans %}Insert new line{% endtrans %}

                    Esc, Ctrl + [
                    {% trans %}Cancel compose{% endtrans %}

                        {{ _("Narrowing") }}

                    s
                    {% trans %}Narrow by stream{% endtrans %}

                    S
                    {% trans %}Narrow by topic{% endtrans %}

                    P
                    {% trans %}Narrow to all private messages{% endtrans %}

                    n
                    {% trans %}Narrow to next unread topic{% endtrans %}

                    p
                    {% trans %}Narrow to next unread private message{% endtrans %}

                    A, D
                    {% trans %}Cycle between stream narrows{% endtrans %}

                    Esc, Ctrl + [
                    {% trans %}Narrow to all unmuted messages{% endtrans %}

                    Ctrl + .
                    {% trans %}Narrow to current compose box recipient{% endtrans %}

                        {{ _("Message actions") }}

                    Left
                    {% trans %}Edit your last message{% endtrans %}

                    u
                    {% trans %}Show message sender's profile{% endtrans %}

                    v
                    {% trans %}Show images in thread{% endtrans %}

                    i then Enter
                    {% trans %}Edit selected message{% endtrans %}

                    Ctrl + s
                    {% trans %}Star selected message{% endtrans %}

                    +

                        {% trans %}React to selected message with{% endtrans %}

                    -
                    {% trans %}Collapse/show selected message{% endtrans %}

                    M
                    {% trans %}Toggle topic mute{% endtrans %}

                        {{ _("Drafts") }}

                    d
                    {% trans %}View drafts{% endtrans %}

                    Enter
                    {% trans %}Edit selected draft{% endtrans %}

                    Backspace
                    {% trans %}Delete selected draft{% endtrans %}

                        {{ _("Menus") }}

                    g
                    {% trans %}Toggle the gear menu{% endtrans %}

                    i
                    {% trans %}Open message menu{% endtrans %}

                    :
                    {% trans %}Open reactions menu{% endtrans %}

                    ?
                    {% trans %}Show keyboard shortcuts{% endtrans %}

                        {{ _("Streams settings") }}

                    Up, Down
                    {% trans %}Scroll through streams{% endtrans %}

                    Left, Right
                    {% trans %}Switch between tabs{% endtrans %}

                    V
                    {% trans %}View stream messages{% endtrans %}

                    S
                    {% trans %}Subscribe to/unsubscribe from selected stream{% endtrans %}

                    n
                    {% trans %}Create new stream{% endtrans %}

        {% trans %}Detailed keyboard shortcuts documentation{% endtrans %}


text:
package com.iotticket.me.api.v1.model;

import java.util.Collection;

import com.iotticket.me.utils.Jserializable;

/**
 * Response from server after a write.
 *
 */
public class WriteDataResponse implements Jserializable {

	private FieldCollection fieldCollection = new FieldCollection();

    private Field writeResults = new Field("writeResults", Field.Collection, fieldCollection)
    .setTypeHint(WriteResult.class);

    private Field totalWritten = new Field("totalWritten", Field.Number, fieldCollection);

    public Collection getWriteResults() {
        return writeResults.getValue() != null ? (Collection)writeResults.getValue() : null;
    }

    public void setWriteResults(Collection writeResults) {
        this.writeResults.setValue(writeResults);
    }

    /**
     *
     * @return Total number of data points written
     */
    public int getTotalWritten() {
        return ((Integer)totalWritten.getValue()).intValue();
    }

    public void setTotalWritten(int totalWritten) {
        this.totalWritten.setValue(new Integer(totalWritten));
    }

    public FieldCollection getFieldCollection() {
    	return fieldCollection;
    }

}


text:
vti_encoding:SR|utf8-nl
vti_timecreated:TR|20 Jan 1999 15:07:58 +0100
vti_timelastmodified:TR|06 Nov 1999 13:27:18 +0100
vti_filesize:IR|8390
vti_extenderversion:SR|4.0.2.2717
vti_backlinkinfo:VX|_borders/left.htm
vti_author:SR|Administrator
vti_nexttolasttimemodified:TR|17 Oct 1999 19:24:10 +0200
vti_title:SR|Akordy - Iron Maiden
vti_modifiedby:SR|Rado
vti_metatags:VR|HTTP-EQUIV=Content-Type text/html;\\ charset=windows-1250
vti_cacheddtm:TX|26 Feb 2000 14:41:52 -0000
vti_cachedlinkinfo:VX|H|fear.txt
vti_cachedsvcrellinks:VX|FHUS|akordy/IRON/fear.txt
vti_cachedtitle:SR|Akordy - Iron Maiden
vti_cachedbodystyle:SR|<body link="#FFFF00" vlink="#FFFF00" alink="#FFFF00" bgcolor="#000000" text="#808000">
vti_cachedhasbots:BR|false
vti_cachedhastheme:BR|false
vti_cachedhasborder:BR|true
vti_borderaggregate:SR|default


text:
package com.amazonaws.services.codecommit.model;

import javax.annotation.Generated;

/**
 * <p>
 * The pull request description is not valid. Descriptions cannot be more than 1,000 characters.
 * </p>
 */
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class InvalidDescriptionException extends com.amazonaws.services.codecommit.model.AWSCodeCommitException {
    private static final long serialVersionUID = 1L;

    /**
     * Constructs a new InvalidDescriptionException with the specified error message.
     *
     * @param message
     *        Describes the error encountered.
     */
    public InvalidDescriptionException(String message) {
        super(message);
    }

}


text:
namespace content {

bool IsSameOriginWithAncestors(RenderFrameHost* host,
                               const url::Origin& origin) {
  RenderFrameHost* parent = host->GetParentOrOuterDocument();
  while (parent) {
    if (!parent->GetLastCommittedOrigin().IsSameOriginWith(origin)) {
      return false;
    }
    parent = parent->GetParent();
  }
  return true;
}

}  // namespace content


text:
class AddActivatedToResources < ActiveRecord::Migration
  def self.up
    add_column :permissions, :activated, :boolean, :default => true
    Permission.reset_column_information
    Permission.all.each{|perm| perm.update_attribute(:activated, true)}
  end

  def self.down
    remove_column :permissions, :activated
  end
end


text:
declare export function graphql<Props, <<<PRETTIER_RANGE_START>>>Variables<<<PRETTIER_RANGE_END>>>, Component: React$ComponentType<Props>>
  (query: GQLDocument, config?: Config<Props, QueryConfigOptions<Variables>>):
  (Component: Component) => React$ComponentType<$Diff<React$ElementConfig<Component>, {
    data: Object|void,
    mutate: Function|void
  }>>

declare type FetchPolicy= "cache-first" | "cache-and-network" | "network-only" | "cache-only"


text:
#include "ijksdl_codec_android_mediadef.h"

const char *SDL_AMediaCodec_getColorFormatName(int colorFormat)
{
    switch (colorFormat) {
    case AMEDIACODEC__OMX_COLOR_FormatMonochrome:
        return "Format8bitRGB332";
    case AMEDIACODEC__OMX_COLOR_Format8bitRGB332:
        return "Format8bitRGB332";
    case AMEDIACODEC__OMX_COLOR_Format12bitRGB444:
        return "Format12bitRGB444";
    case AMEDIACODEC__OMX_COLOR_Format16bitARGB4444:
        return "Format16bitARGB4444";
    case AMEDIACODEC__OMX_COLOR_Format16bitARGB1555:
        return "Format16bitARGB1555";
    case AMEDIACODEC__OMX_COLOR_Format16bitRGB565:
        return "Format16bitRGB565";
    case AMEDIACODEC__OMX_COLOR_Format16bitBGR565:
        return "Format16bitBGR565";
    case AMEDIACODEC__OMX_COLOR_Format18bitRGB666:
        return "Format18bitRGB666";
    case AMEDIACODEC__OMX_COLOR_Format18bitARGB1665:
        return "Format18bitARGB1665";
    case AMEDIACODEC__OMX_COLOR_Format19bitARGB1666:
        return "Format19bitARGB1666";
    case AMEDIACODEC__OMX_COLOR_Format24bitRGB888:
        return "Format24bitRGB888";
    case AMEDIACODEC__OMX_COLOR_Format24bitBGR888:
        return "Format24bitBGR888";
    case AMEDIACODEC__OMX_COLOR_Format24bitARGB1887:
        return "Format24bitARGB1887";
    case AMEDIACODEC__OMX_COLOR_Format25bitARGB1888:
        return "Format25bitARGB1888";
    case AMEDIACODEC__OMX_COLOR_Format32bitBGRA8888:
        return "Format32bitBGRA8888";
    case AMEDIACODEC__OMX_COLOR_Format32bitARGB8888:
        return "Format32bitARGB8888";
    case AMEDIACODEC__OMX_COLOR_FormatYUV411Planar:
        return "FormatYUV411Planar";
    case AMEDIACODEC__OMX_COLOR_FormatYUV411PackedPlanar:
        return "FormatYUV411PackedPlanar";
    case AMEDIACODEC__OMX_COLOR_FormatYUV420Planar:
        return "FormatYUV420Planar";
    case AMEDIACODEC__OMX_COLOR_FormatYUV420PackedPlanar:
        return "FormatYUV420PackedPlanar";
    case AMEDIACODEC__OMX_COLOR_FormatYUV420SemiPlanar:
        return "FormatYUV420SemiPlanar";
    case AMEDIACODEC__OMX_COLOR_FormatYUV422Planar:
        return "FormatYUV422Planar";
    case AMEDIACODEC__OMX_COLOR_FormatYUV422PackedPlanar:
        return "FormatYUV422PackedPlanar";
    case AMEDIACODEC__OMX_COLOR_FormatYUV422SemiPlanar:
        return "FormatYUV422SemiPlanar";
    case AMEDIACODEC__OMX_COLOR_FormatYCbYCr:
        return "FormatYCbYCr";
    case AMEDIACODEC__OMX_COLOR_FormatYCrYCb:
        return "FormatYCrYCb";
    case AMEDIACODEC__OMX_COLOR_FormatCbYCrY:
        return "FormatCbYCrY";
    case AMEDIACODEC__OMX_COLOR_FormatCrYCbY:
        return "FormatCrYCbY";
    case AMEDIACODEC__OMX_COLOR_FormatYUV444Interleaved:
        return "FormatYUV444Interleaved";
    case AMEDIACODEC__OMX_COLOR_FormatRawBayer8bit:
        return "FormatRawBayer8bit";
    case AMEDIACODEC__OMX_COLOR_FormatRawBayer10bit:
        return "FormatRawBayer10bit";
    case AMEDIACODEC__OMX_COLOR_FormatRawBayer8bitcompressed:
        return "FormatRawBayer8bitcompressed";
    case AMEDIACODEC__OMX_COLOR_FormatL2:
        return "FormatL2";
    case AMEDIACODEC__OMX_COLOR_FormatL4:
        return "FormatL4";
    case AMEDIACODEC__OMX_COLOR_FormatL8:
        return "FormatL8";
    case AMEDIACODEC__OMX_COLOR_FormatL16:
        return "FormatL16";
    case AMEDIACODEC__OMX_COLOR_FormatL24:
        return "FormatL24";
    case AMEDIACODEC__OMX_COLOR_FormatL32:
        return "FormatL32";
    case AMEDIACODEC__OMX_COLOR_FormatYUV420PackedSemiPlanar:
        return "FormatYUV420PackedSemiPlanar";
    case AMEDIACODEC__OMX_COLOR_FormatYUV422PackedSemiPlanar:
        return "FormatYUV422PackedSemiPlanar";
    case AMEDIACODEC__OMX_COLOR_Format18BitBGR666:
        return "Format18BitBGR666";
    case AMEDIACODEC__OMX_COLOR_Format24BitARGB6666:
        return "Format24BitARGB6666";
    case AMEDIACODEC__OMX_COLOR_Format24BitABGR6666:
        return "Format24BitABGR6666";

#if 0
        // duplicated
    case AMEDIACODEC__OMX_COLOR_TI_FormatYUV420PackedSemiPlanar:
        return "TI_FormatYUV420PackedSemiPlanar";
#endif
    case AMEDIACODEC__OMX_COLOR_FormatSurface:
        return "FormatSurface";
    case AMEDIACODEC__OMX_COLOR_FormatYUV420Flexible:
        return "FormatYUV420Flexible";
#if 0
        // duplicated
    case AMEDIACODEC__OMX_COLOR_QCOM_FormatYUV420SemiPlanar:
        return "QCOM_FormatYUV420SemiPlanar";
#endif

        // from hardware intel
    case _AMEDIACODEC__OMX_INTEL_COLOR_FormatYUV420PackedSemiPlanar:
        return "INTEL_FormatYUV420PackedSemiPlanar";
    case _AMEDIACODEC__OMX_INTEL_COLOR_FormatYUV420PackedSemiPlanar_Tiled:
        return "INTEL_FormatYUV420PackedSemiPlanar_Tiled";

        // from hardware qcom
    case _AMEDIACODEC__OMX_QCOM_COLOR_FormatYVU420SemiPlanar:
        return "QCOM_FormatYVU420SemiPlanar";
    case _AMEDIACODEC__OMX_QCOM_COLOR_FormatYVU420PackedSemiPlanar32m4ka:
        return "QCOM_FormatYVU420PackedSemiPlanar32m4ka";
    case _AMEDIACODEC__OMX_QCOM_COLOR_FormatYUV420PackedSemiPlanar16m2ka:
        return "QCOM_FormatYUV420PackedSemiPlanar16m2ka";
    case _AMEDIACODEC__OMX_QCOM_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka:
        return "QCOM_FormatYUV420PackedSemiPlanar64x32Tile2m8ka";
    case _AMEDIACODEC__OMX_QCOM_COLOR_FORMATYUV420PackedSemiPlanar32m:
        return "QCOM_FORMATYUV420PackedSemiPlanar32m";
    case _AMEDIACODEC__OMX_QCOM_COLOR_FORMATYUV420PackedSemiPlanar32mMultiView:
        return "QCOM_FORMATYUV420PackedSemiPlanar32mMultiView";

        // from hardware samsung_slsi
    case _AMEDIACODEC__OMX_SEC_COLOR_FormatNV12TPhysicalAddress:
        return "SEC_FormatNV12TPhysicalAddress";
    case _AMEDIACODEC__OMX_SEC_COLOR_FormatNV12LPhysicalAddress:
        return "SEC_FormatNV12LPhysicalAddress";
    case _AMEDIACODEC__OMX_SEC_COLOR_FormatNV12LVirtualAddress:
        return "SEC_FormatNV12LVirtualAddress";
    case _AMEDIACODEC__OMX_SEC_COLOR_FormatNV12Tiled:
        return "SEC_FormatNV12Tiled";
    case _AMEDIACODEC__OMX_SEC_COLOR_FormatNV21LPhysicalAddress:
        return "SEC_FormatNV21LPhysicalAddress";
    case _AMEDIACODEC__OMX_SEC_COLOR_FormatNV21Linear:
        return "SEC_FormatNV21Linear";

        // from hardware ti
    case _AMEDIACODEC__OMX_TI_COLOR_FormatYUV420PackedSemiPlanar:
        return "TI_FormatYUV420PackedSemiPlanar";

    default:
        return "FormatUnknown";
    }
}


text:
<?php if ($inbox): ?>

Private Nachrichten: Posteingang

<?php else: ?>

Private Nachrichten: Postausgang

<?php endif; ?>

<a class="primary button" href="?p=new-pm&token=<?= $token ?>"> Nachricht schreiben
<?php if ($inbox): ?>
	 Postausgang ansehen
<?php else: ?>
	 Posteingang ansehen
<?php endif; ?>


text:
package org.apache.tiles.request.velocity.autotag;

import java.util.Map;

import org.apache.velocity.context.InternalContextAdapter;
import org.apache.velocity.runtime.parser.node.ASTMap;
import org.apache.velocity.runtime.parser.node.Node;

/**
 * Utilities for Velocity usage in Tiles.
 *
 * @version $Rev$ $Date$
 */
public final class VelocityUtil {

    /**
     * Private constructor to avoid instantiation.
     */
    private VelocityUtil() {
    }

    /**
     * Extracts the parameters from the directives, by getting the child at
     * position 0 supposing it is a map.
     *
     * @param context The Velocity context.
     * @param node The node to use.
     * @return The extracted parameters.
     */
    @SuppressWarnings("unchecked")
    public static Map<String, Object> getParameters(InternalContextAdapter context,
            Node node) {
        ASTMap astMap = (ASTMap) node.jjtGetChild(0);
        Map<String, Object> params = (Map<String, Object>) astMap
                .value(context);
        return params;
    }

    /**
     * Returns the "value" parameter if it is not null, otherwise returns
     * "defaultValue".
     *
     * @param value The value to return, if it is not null.
     * @param defaultValue The value to return, if value is null.
     * @return The value, defaulted if necessary.
     */
    public static Object getObject(Object value, Object defaultValue) {
        if (value == null) {
            value = defaultValue;
        }
        return value;
    }
}


text:
package com.example.god.jogodamemoria;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class GameScreen extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_game_screen);
//
        Button Jogar = (Button) findViewById(R.id.Jogar);

        Jogar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
           Intent game  = new Intent(GameScreen.this,Game.class);
                startActivity(game);
            }
        });

        Button sobre = (Button) findViewById(R.id.sobre);

        sobre.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent sobre = new Intent(GameScreen.this,Sobre.class);
                startActivity(sobre);
            }
        });
    }
}


text:
<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {
    return view('welcome');
});

Route::group(['middleware' => ['web']], function () {
	Route::resource('employee/employees', 'Employee\\EmployeesController');
});

Route::group(['middleware' => ['web']], function () {
	Route::resource('profile/profiles', 'Profile\\ProfilesController');
});

Route::group(['middleware' => ['web']], function () {
	Route::resource('feedstock/feedstocks', 'FeedStock\\FeedStockController');
});

Route::group(['middleware' => ['web']], function () {
	Route::resource('product/products', 'product\\ProductsController');
});
Route::group(['middleware' => ['web']], function () {
	Route::resource('buyer/products', 'buyer\\ProductsController');
});
Route::group(['middleware' => ['web']], function () {
	Route::resource('buyer/buyers', 'buyer\\BuyersController');
});
Route::group(['middleware' => ['web']], function () {
	Route::resource('frequency/frequencys', 'frequency\\FrequencysController');
});
Route::group(['middleware' => ['web']], function () {
	Route::resource('goal/goals', 'goal\\GoalsController');
});
Route::group(['middleware' => ['web']], function () {
	Route::resource('agenda/agends', 'agenda\\AgendsController');
});
Route::group(['middleware' => ['web']], function () {
	Route::resource('point/points', 'point\\PointsController');
});


text:
description: Show client configuration
keywords: machine, ip, subcommand
title: docker-machine ip
---

Get the IP address of one or more machines.

```none
$ docker-machine ip dev
192.168.99.104

$ docker-machine ip dev dev2
192.168.99.104
192.168.99.105
```


text:
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
import { Profile } from '@llecoop';

@Component({
  selector: 'app-profile-btn',
  templateUrl: './profile-btn.component.html',
  changeDetection: ChangeDetectionStrategy.OnPush
})
export class ProfileBtnComponent {
  @Input() profileMenu: string;
  @Input() basicProfile: Partial<Profile>;
}


text:
FILE=$(basename $1)

# Ensure GID file exists
current_dir=$PWD
cd trusted_roots
if [ ! -f $FILE ]; then
    echo "$FILE : does not exists";
    exit 1
elif [ ! -r $FILE ]; then
    echo "$FILE: can not read";
    exit 2
fi

if [ "${FILE##*.}" = "gid" ]; then
    HASH=$(openssl x509 -noout -hash -in $FILE)
    ca_clients_folder="/etc/apache2/ssl.crt/ca_clients/"
    #ln -s /opt/ofelia/optin_manager/src/python/openflow/optin_manager/sfa/jfed_roots/$FILE $HASH.0
    # Symbolink link from Apache's CA client folder to VT manager's SFA trusted roots folder
    ln -s $PWD/$FILE $ca_clients_folder/$HASH.0
else
    echo "File extension must be .gid";
fi

cd $current_dir


text:
//
// このファイルは、JavaTM Architecture for XML Binding(JAXB) Reference Implementation、v2.2.8-b130911.1802によって生成されました
// http://java.sun.com/xml/jaxbを参照してください
// ソース・スキーマの再コンパイル時にこのファイルの変更は失われます。
// 生成日: 2015.08.24 時間 02:38:24 AM JST
//

package com.eitax.recall.rest.ebay.shopping.xsd;

import javax.xml.bind.annotation.XmlEnum;
import javax.xml.bind.annotation.XmlEnumValue;
import javax.xml.bind.annotation.XmlType;

/**
 *
ProductIDCodeTypeのJavaクラス。
 *
 *
次のスキーマ・フラグメントは、このクラス内に含まれる予期されるコンテンツを指定します。
 *

 *

 * <simpleType name="ProductIDCodeType">
 *   <restriction base="{http://www.w3.org/2001/XMLSchema}token">
 *     <enumeration value="ISBN"/>
 *     <enumeration value="EAN"/>
 *     <enumeration value="UPC"/>
 *     <enumeration value="MPN"/>
 *     <enumeration value="Keywords"/>
 *     <enumeration value="CatalogItem"/>
 *     <enumeration value="Reference"/>
 *     <enumeration value="CustomCode"/>
 *   </restriction>
 * </simpleType>
 *

 *
 */
@XmlType(name = "ProductIDCodeType")
@XmlEnum
public enum ProductIDCodeType {

    /**
     *
     * 						ISBN-10 or ISBN-13 value for books. (The string length of ProductID
     * 						indicates whether the ID is 10 or 13 characters.)
     * 						If you know a book's ISBN, you can use this instead of the
     * 						eBay CatalogItem or Reference ID to search for that book.
     * 						Max length of corresponding value: 13
     *
     *
     */
    ISBN("ISBN"),

    /**
     *
     * 						EAN value for books. (This is used more commonly in
     * 						European countries.)
     * 						If you know a book's EAN, you can use this instead of the
     * 						eBay CatalogItem or Reference ID to search for that book.
     * 						Max length of corresponding value: 13
     *
     *
     */
    EAN("EAN"),

    /**
     *
     * 						UPC value for products in Music (e.g., CDs), DVDs & Movies,
     * 						and Video Games categories (or domains).
     * 						If you know a product's UPC, you can use this instead of the
     * 						eBay CatalogItem or Reference ID to search for that product.
     * 						Max length of corresponding value: 12
     *
     *
     */
    UPC("UPC"),

    /**
     *
     * 						Manufacturer's part number for products like electronics.
     *
     *
     */
    MPN("MPN"),

    /**
     *
     * 						Reserved for future use.
     *
     *
     */
    @XmlEnumValue("Keywords")
    KEYWORDS("Keywords"),

    /**
     *
     * 						Reserved for future use.
     *
     *
     */
    @XmlEnumValue("CatalogItem")
    CATALOG_ITEM("CatalogItem"),

    /**
     *
     * 						The global reference ID for an eBay catalog product.
     * 						A reference ID is a fixed reference to a product
     * 						(regardless of version).
     * 						One reference ID can be associated with multiple CatalogItem IDs.
     * 						To determine valid reference IDs for products to use as input to FindProducts, first call
     * 						FindProducts with QueryKeywords (or ProductID).
     * 						Each product in the response includes a reference ID.

     * 						If you specify one of these products in a request, the call may return the product with a warning,
     * 						or it may return an error if the product has been deleted.
     *
     *
     */
    @XmlEnumValue("Reference")
    REFERENCE("Reference"),

    /**
     *
     * 						Reserved for internal or future use.
     *
     *
     */
    @XmlEnumValue("CustomCode")
    CUSTOM_CODE("CustomCode");
    private final String value;

    ProductIDCodeType(String v) {
        value = v;
    }

    public String value() {
        return value;
    }

    public static ProductIDCodeType fromValue(String v) {
        for (ProductIDCodeType c: ProductIDCodeType.values()) {
            if (c.value.equals(v)) {
                return c;
            }
        }
        throw new IllegalArgumentException(v);
    }

}


text:
ACCEPTED

#### According to
The Catalogue of Life, 3rd January 2011

#### Published in
Not. pl. asiat. 4:11. 1854

#### Original name
null

### Remarks
null


text:
module Seraph
  class Application
    class MiddlewareStack
      include Enumerable

      attr_reader :middleware

      delegate :[], :each, :empty?, to: :middleware

      def initialize
        @middleware = []
      end

      def use(klass, *args, &block)
        @middleware << Middleware.new(klass, args, block)
      end

      def build(app)
        @middleware.reverse.inject(app) {|a, m| m.build(a) }
      end

      class Middleware
        attr_reader :klass, :args, :block

        def initialize(klass, args, block)
          @klass, @args, @block = klass, args, block
        end

        def build(app)
          @klass.new(app, *@args, &@block)
        end
      end
    end
  end
end


text:
<TITLE>Review for Gigantic (2000)</TITLE>
<LINK REL="STYLESHEET" TYPE="text/css" HREF="/ramr.css">

Gigantic (2000)

reviewed by
Mac VerStandig

Gigantic
3 Stars (Out of 4)
Reviewed by Mac VerStandig
critic@moviereviews.org
http://www.moviereviews.org
March 20, 2000
Release Date - Will Play FilmFest DC 2000

---Please note, a copy of this review can be found at
http://www.moviereviews.org/gigantic.htm and will be added to the
Moviereviews.org FilmFest D. C. coverage section when the festival begins---

Producer Tom Tykwer's follow-up to the acclaimed Run Lola Run, Gigantic
follows three friends through a night in Hamburg, Germany as one of the trio
prepares to depart permanently the next morning. The production's only weak
points are the fault of international barriers, not the filmmakers, with a
critical scene causing confusion over international currencies and another
relying on two languages being spoken thus losing its effect with the
monolingual English subtitles. The film's climax is a table-soccer game,
something this critic has never imagined could be so exhilarating. Mixed
into the touching and entertaining night in Germany are themes of
homosexuality, dormant nazism awakening and one's responsibility for others.
At the end of the movie's 77 minute duration one thing is clear: Gigantic
has a heart the size of its title.

The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).

The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.

Please direct comments/criticisms of the review to relevant newsgroups.

Broken URLs inthe reviews are the responsibility of the author.

The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.

Related links: index of all rec.arts.movies.reviews reviews