text:
r"""Test code for Mixture-of-Experts builder."""

from lingvo import compat as tf
from lingvo.core import cluster_factory
from lingvo.core import gshard_builder
from lingvo.core import gshard_layers
from lingvo.core import py_utils
from lingvo.core import test_utils
from lingvo.core import tpu_summary
import numpy as np

tf.flags.DEFINE_integer('num_partitions', 2, 'Number of partitions')

FLAGS = tf.flags.FLAGS

class FakeMoEBuilder(gshard_builder.MoEBuilder):

  def SharedEncBiasWeights(self, name):
    p = self.params
    return self._Var(
        name=name,
        shared_var_collection_suffix='shared_var',
        weights=[('bias',
                  py_utils.WeightParams(
                      shape=[p.model_dim],
                      init=py_utils.WeightInit.Constant(1.0),
                      collections=['_lingvo_enc_bias_gshard_shared_var'],
                      dtype=p.dtype))])

  def FakeLayer(self, name):
    """Returns the Softmax layer with optional label smoothing."""
    return self._Graph(name, ['i'], ['o'],
                       ('->w', self.SharedEncBiasWeights('w')),
                       ('i,w->o', self._Fn('add', lambda x, w: x + w)))

class _MoEBuilder(gshard_builder.MoEBuilder):

  @classmethod
  def Params(cls):
    p = super().Params()
    p.use_xla_dynamic_update_slice = False
    return p

class MoEBuilderTest(test_utils.TestCase):

  def testSetFPropDtypeBfloat16(self):
    builder_p = _MoEBuilder.Params()
    builder_p.cls.SetFPropDtype(builder_p, tf.bfloat16)
    self.assertEqual(tf.bfloat16, builder_p.fprop_dtype)
    self.assertEqual(tf.float32, builder_p.attention_logits_dtype)

  def testSharedEncBiasWeights(self):
    model_dim = 4
    key_value_dim = 2
    num_heads = 2
    g = tf.Graph()
    with g.as_default(), self.SetEval(True):
      _ = py_utils.GetOrCreateGlobalStepVar()  # for DeterministicDropout
      builder = FakeMoEBuilder.Params().Set(
          num_devices=FLAGS.num_partitions,
          dropout_rate=0,
          model_dim=model_dim,
          attention_key_value_dim=key_value_dim,
          attention_num_heads=num_heads)
      builder = builder.Instantiate()
      p = builder._Seq('model', builder.FakeLayer('layer0'),
                       builder.FakeLayer('layer1'))
      layer = p.Instantiate()
      all_vars = tf.trainable_variables()
      tf.logging.info(all_vars)
      self.assertEqual(1, len(all_vars))
    with tf.Session(graph=g) as sess, self.SetEval(True):
      x = tf.ones([model_dim])
      y = layer.FPropDefaultTheta(x)
      sess.run(tf.global_variables_initializer())
      y_val = sess.run(y)
      self.assertAllEqual([3.] * model_dim, y_val)

  def testRepeatLayerUnrolledState(self):
    batch_dim = 2
    length_dim = 4
    model_dim = 8
    key_value_dim = 8
    num_heads = 2
    g = tf.Graph()
    with g.as_default(), self.SetEval(True):
      tf.random.set_seed(398847392)
      _ = py_utils.GetOrCreateGlobalStepVar()  # for DeterministicDropout
      builder = _MoEBuilder.Params().Set(
          deterministic_dropout=True,
          num_devices=FLAGS.num_partitions,
          dropout_rate=0.0,
          model_dim=model_dim,
          attention_key_value_dim=key_value_dim,
          attention_num_heads=num_heads)
      builder = builder.Instantiate()
      # Build a stack of two attention layers.
      p = builder.DecoderLayerStack(
          'decoder',
          sub_layers=[builder.DecSelfAttention('atten')],
          num=4,
          use_repeat_layer=True)
      p.params_init = py_utils.WeightInit.Xavier(scale=1.0, seed=0)
      layer = p.Instantiate()

    with tf.Session(graph=g) as sess, self.SetEval(True):
      np.random.seed(12345)
      inputs = np.random.normal(size=[batch_dim, length_dim, model_dim]).astype(
          np.float32)
      segment_id = np.zeros([batch_dim, length_dim], np.int32)
      segment_pos = np.zeros([batch_dim, length_dim], np.int32)
      segment_id[:, :] = 1
      segment_pos[:] = range(length_dim)
      encoder_output = np.random.normal(
          size=[batch_dim, length_dim, model_dim]).astype(np.float32)
      encoder_segment_id = np.zeros([batch_dim, length_dim], np.int32)
      encoder_segment_pos = np.zeros([batch_dim, length_dim], np.int32)
      encoder_segment_id[:, :] = 1
      encoder_segment_pos[:] = range(length_dim)

      sess.run(tf.global_variables_initializer())

      fprop_nmap = py_utils.NestedMap(
          vec=tf.convert_to_tensor(inputs),
          segment_id=tf.convert_to_tensor(segment_id),
          segment_pos=tf.convert_to_tensor(segment_pos),
          encoder_output=tf.convert_to_tensor(encoder_output),
          encoder_segment_id=tf.convert_to_tensor(encoder_segment_id),
          encoder_segment_pos=tf.convert_to_tensor(encoder_segment_pos),
          aux_loss=tf.constant(0.0))
      output1 = layer.FPropDefaultTheta(fprop_nmap).vec
      # Get the bias, k, v states from those two attention layers.
      layer_0 = layer.blocks.body_iter_00000.layer_000.atten
      bias1 = layer_0._fprop._named_tensors['qq_bias']
      k_full1 = layer_0._fprop._named_tensors['k_full']
      v_full1 = layer_0._fprop._named_tensors['v_full']

      x1, b1, k1, v1 = sess.run([output1, bias1, k_full1, v_full1])

      # check that output is not random
      x1b = sess.run(output1)
      self.assertAllEqual(x1, x1b)

      # batch-major state
      state = gshard_layers.StateLayer.InitState(layer,
                                                 [batch_dim, 1, length_dim])

      # Increment the state one by one.
      for t in range(length_dim):
        # run with sliced input args using theta with state ('incremental mode')
        theta_with_state = gshard_layers.StateLayer.UpdateTheta(
            layer, layer.theta, state, t)
        tgt_mask = np.zeros([batch_dim, 1, length_dim])
        tgt_mask[:, :, :(t + 1)] = 1
        tgt_mask = tf.convert_to_tensor(tgt_mask.astype(np.float32))
        gshard_layers.OverrideLayer.Set('dec_self_attention_bias',
                                        (tgt_mask - 1.0) * 1e9)
        # slice decoder inputs, as if length_dim=1
        fprop_nmap_t = py_utils.NestedMap(
            vec=tf.convert_to_tensor(inputs[:, t:(t + 1)]),
            segment_id=tf.convert_to_tensor(segment_id[:, t:(t + 1)]),
            segment_pos=tf.convert_to_tensor(segment_pos[:, t:(t + 1)]),
            encoder_output=tf.convert_to_tensor(encoder_output),
            encoder_segment_id=tf.convert_to_tensor(encoder_segment_id),
            encoder_segment_pos=tf.convert_to_tensor(encoder_segment_pos),
            aux_loss=tf.constant(0.0))
        output2 = layer.FProp(theta_with_state, fprop_nmap_t).vec
        # Get the state slices.
        bias2 = layer_0._fprop._named_tensors['bias_full']
        k_full2 = layer_0._fprop._named_tensors['k_full']
        v_full2 = layer_0._fprop._named_tensors['v_full']

        state = gshard_layers.StateLayer.UpdateState(layer, theta_with_state,
                                                     state)

        x2, b2, k2, v2 = sess.run([output2, bias2, k_full2, v_full2])

        self.assertAllClose(x1[:, t], x2[:, 0])
        self.assertAllEqual(b1[:, t, :(t + 1)], b2[:, 0, :(t + 1)])
        self.assertAllClose(k1[:, :(t + 1)], k2[:, :(t + 1)])
        self.assertAllClose(v1[:, :(t + 1)], v2[:, :(t + 1)])
      # Clear the OverrideLayer.
      gshard_layers.OverrideLayer.Clear()

  def _GetInputs(self, reshape_m=False):
    x = tf.constant([[[.1, .2, .3, .4], [.3, .4, .5, .6], [.5, .6, .1, .2]],
                     [[.7, .8, .4, .5], [.9, .1, .2, .3], [.0, .9, .3, .7]]],
                    dtype=tf.float32)
    seg_id = tf.constant([[1, 1, 1], [1, 1, 1]], dtype=tf.int32)
    pos_id = tf.constant([[0, 1, 2], [0, 1, 2]], dtype=tf.int32)
    if reshape_m:
      # Reshape with model_dim_reshape_segments = 2
      x = tf.reshape(x, [2, 3, 2, 2])
    return x, seg_id, pos_id

  def testMoEModelDimReshapeFProp(self):
    """Test to verify MoEBuilder.MoE() supports dynamic shapes.

    Test without this change fails.
    """
    builder = gshard_builder.DenseBuilder.Params().Set(
        e_dim=2,
        c_dim=2,
        deterministic_dropout=True,
        dtype=tf.float32,
        relative_attention_type='bias',
        model_dim=4,
        attention_num_heads=2,
        attention_combine_dims=True,
        attention_num_memory_heads=1,
        model_dim_reshape_segments=2,
        ff_dim=8,
        attention_key_value_dim=2,
        moe_hidden_dim=8).Instantiate()
    p = builder.DecoderLayerStack(
        'decoder',
        sub_layers=[
            builder.DecSelfAttentionRelativeBias('dec_self_attention'),
            builder.MoE('moe', decoder=True)
        ],
        num=2,
        use_repeat_layer=True)

    with self.session(graph=tf.Graph()) as sess:
      tf.random.set_seed(2019)
      # we will reduce the length_dim by 2 dynamically.
      layer = p.Instantiate()
      inputs, segment_ids, segment_pos = self._GetInputs(reshape_m=True)
      dec_inputs = py_utils.NestedMap(
          vec=inputs,
          segment_id=segment_ids,
          segment_pos=segment_pos,
          encoder_output=inputs,
          encoder_segment_id=tf.zeros_like(segment_ids),
          encoder_segment_pos=tf.zeros_like(segment_pos),
          aux_loss=tf.constant(0.0))
      # Verify length dimension shape is dynamic(a Tensor).
      out = layer.FPropDefaultTheta(dec_inputs).vec
      sess.run(tf.global_variables_initializer())
      sess.run([out])

  def testEncNotVisible(self):

    def _Notvisible(x):
      a, b = tf.expand_dims(x, -1), tf.expand_dims(x, -2)
      return tf.cast(
          tf.math.logical_or(
              tf.not_equal(a, b),
              # also ignoring segment_id=0
              tf.math.logical_not(
                  tf.math.logical_or(tf.cast(a, tf.bool), tf.cast(b,
                                                                  tf.bool)))),
          tf.float32)

    builder = gshard_builder.DenseBuilder.Params().Set(
        dtype=tf.float32).Instantiate()
    graph = tf.Graph()
    with graph.as_default():
      segment_ids = tf.convert_to_tensor([[1, 1, 1, 1]], dtype=tf.int32)
      y = builder._EncNotVisible(segment_ids, segment_ids)
      y2 = _Notvisible(segment_ids)
    with self.session(graph=graph) as sess:
      sess.run(tf.global_variables_initializer())
      y_val, y2_val = sess.run([y, y2])
      self.assertAllEqual(y_val, y2_val)

  def testDecNotVisible(self):

    def _Notvisible(seg_id, seg_pos):
      a, b = tf.expand_dims(seg_id, -1), tf.expand_dims(seg_id, -2)
      return tf.cast(
          tf.math.logical_or(
              tf.less(tf.expand_dims(seg_pos, -1), tf.expand_dims(seg_pos, -2)),
              tf.math.logical_or(
                  tf.not_equal(a, b),
                  tf.math.logical_not(
                      tf.math.logical_or(
                          tf.cast(a, tf.bool), tf.cast(b, tf.bool))))),
          tf.float32)

    builder = gshard_builder.DenseBuilder.Params().Set(
        dtype=tf.float32).Instantiate()
    graph = tf.Graph()
    with graph.as_default():
      segment_ids = tf.convert_to_tensor([[1, 1, 1, 1]], dtype=tf.int32)
      segment_pos = tf.convert_to_tensor([[1, 2, 3, 4]], dtype=tf.int32)
      y = builder._DecNotVisible(segment_ids, segment_pos)
      y2 = _Notvisible(segment_ids, segment_pos)
    with self.session(graph=graph) as sess:
      sess.run(tf.global_variables_initializer())
      y_val, y2_val = sess.run([y, y2])
      self.assertAllEqual(y_val, y2_val)

  def testLayerStack(self):
    model_dim = 4
    num_heads = 2
    d_kv = 2
    d_ff = 8
    builder = gshard_builder.DenseBuilder.Params().Set(
        deterministic_dropout=True,
        dtype=tf.float32,
        relative_attention_type='bias',
        model_dim=model_dim,
        attention_num_heads=num_heads,
        attention_combine_dims=True,
        attention_num_memory_heads=1,
        model_dim_reshape_segments=2,
        ff_dim=d_ff,
        attention_key_value_dim=d_kv).Instantiate()

    def _GetOutputs(enc, dec):
      x, seg_id, pos_id = self._GetInputs(reshape_m=True)
      enc_inputs = py_utils.NestedMap(
          vec=x,
          segment_id=seg_id,
          segment_pos=pos_id,
          aux_loss=tf.constant(0.0))
      enc_outs = enc.FPropDefaultTheta(enc_inputs)
      dec_inputs = py_utils.NestedMap(
          vec=x,
          segment_id=seg_id,
          segment_pos=pos_id,
          encoder_output=enc_outs.vec,
          encoder_segment_id=tf.zeros_like(seg_id),
          encoder_segment_pos=tf.zeros_like(pos_id),
          aux_loss=enc_outs.aux_loss)
      return dec.FPropDefaultTheta(dec_inputs).vec

    # Build a graph with RepeatLayer.
    g = tf.Graph()
    with g.as_default():
      tf.random.set_seed(None)
      enc = builder.EncoderLayerStack(
          'encoder',
          sub_layers=[builder.DenseReluDense('ffw')],
          num=2,
          use_repeat_layer=True).Instantiate()
      dec = builder.DecoderLayerStack(
          'decoder',
          sub_layers=[builder.DenseReluDense('ffw', decoder=True)],
          num=2,
          use_repeat_layer=True).Instantiate()
      rep_out = _GetOutputs(enc, dec)

    tf.Session.reset(target='')
    with tf.Session(graph=g) as sess:
      sess.run(tf.global_variables_initializer())
      rep_out = rep_out.eval(session=sess)
      var_values = sess.run(tf.trainable_variables())

    # Build a graph without RepeatLayer.
    g = tf.Graph()
    with g.as_default():
      tf.random.set_seed(None)
      enc = builder.EncoderLayerStack(
          'encoder', sub_layers=[builder.DenseReluDense('ffw')],
          num=2).Instantiate()
      dec = builder.DecoderLayerStack(
          'decoder',
          sub_layers=[builder.DenseReluDense('ffw', decoder=True)],
          num=2).Instantiate()
      dec_out = _GetOutputs(enc, dec)

    tf.Session.reset(target='')
    with tf.Session(graph=g) as sess:
      tf_vars = [
          enc.vars.layer_000.ln.w.scale, enc.vars.layer_000.ffw.w.wi,
          enc.vars.layer_000.ffw.w.wo, enc.vars.layer_001.ln.w.scale,
          enc.vars.layer_001.ffw.w.wi, enc.vars.layer_001.ffw.w.wo,
          enc.vars.final_layer_norm.w.scale, dec.vars.layer_000.ln.w.scale,
          dec.vars.layer_000.ffw.w.wi, dec.vars.layer_000.ffw.w.wo,
          dec.vars.layer_001.ln.w.scale, dec.vars.layer_001.ffw.w.wi,
          dec.vars.layer_001.ffw.w.wo, dec.vars.final_layer_norm.w.scale
      ]
      for val, var in zip(var_values, tf_vars):
        sess.run(tf.assign(var, val))
      dec_out = dec_out.eval(session=sess)
      self.assertAllClose(dec_out, rep_out)

  def testLayerStackSummary(self):
    # In this test we very that summaries created inside stack layers
    # are processed properly with and without RepeatedLayer
    model_dim = 4
    num_heads = 2
    d_kv = 2
    d_ff = 8
    num_experts = 2
    builder = gshard_builder.DenseBuilder.Params().Set(
        deterministic_dropout=True,
        dtype=tf.float32,
        relative_attention_type='bias',
        model_dim=model_dim,
        attention_num_heads=num_heads,
        attention_combine_dims=True,
        attention_num_memory_heads=1,
        model_dim_reshape_segments=None,
        ff_dim=d_ff,
        moe_hidden_dim=d_ff,
        e_dim=num_experts,
        c_dim=1,
        num_groups=num_experts,
        num_devices=num_experts,
        attention_key_value_dim=d_kv).Instantiate()

    def _GetOutputs(enc, dec):
      x, seg_id, pos_id = self._GetInputs()
      enc_inputs = py_utils.NestedMap(
          vec=x,
          segment_id=seg_id,
          segment_pos=pos_id,
          aux_loss=tf.constant(0.0))
      enc_outs = enc.FPropDefaultTheta(enc_inputs)
      dec_inputs = py_utils.NestedMap(
          vec=x,
          segment_id=seg_id,
          segment_pos=pos_id,
          encoder_output=enc_outs.vec,
          encoder_segment_id=tf.zeros_like(seg_id),
          encoder_segment_pos=tf.zeros_like(pos_id),
          aux_loss=enc_outs.aux_loss)
      return dec.FPropDefaultTheta(dec_inputs).vec

    # Build a graph with RepeatLayer unrolled.
    g = tf.Graph()
    with g.as_default(), tpu_summary.context(), cluster_factory.SetEval(
        mode=True):
      tf.random.set_seed(None)
      enc = builder.EncoderLayerStack(
          'encoder',
          sub_layers=[builder.DenseReluDense('ffw')],
          num=2,
          use_repeat_layer=True).Instantiate()
      dec = builder.DecoderLayerStack(
          'decoder',
          sub_layers=[builder.MoE('moe', decoder=True)],
          num=2,
          use_repeat_layer=True).Instantiate()
      rep_unroll_out = _GetOutputs(enc, dec)
      rep_unroll_summary = tpu_summary.merge_all()

    expected_rep_unroll_summary = [
        'index_1/decoder_3/blocks/blocks_body/layer_000/moe/ffw/compute_gating',
        'index_1/decoder_3/blocks/blocks_body_1/layer_000/moe/ffw/compute_gating',
        'over_capacity_1/decoder_3/blocks/blocks_body/layer_000/moe/ffw/compute_gating/over_capacity',
        'over_capacity_1/decoder_3/blocks/blocks_body_1/layer_000/moe/ffw/compute_gating/over_capacity',
        'over_capacity_1_ratio/decoder_3/blocks/blocks_body/layer_000/moe/ffw/compute_gating/over_capacity',
        'over_capacity_1_ratio/decoder_3/blocks/blocks_body_1/layer_000/moe/ffw/compute_gating/over_capacity',
        'over_capacity_2/decoder_3/blocks/blocks_body/layer_000/moe/ffw/compute_gating/over_capacity_1',
        'over_capacity_2/decoder_3/blocks/blocks_body_1/layer_000/moe/ffw/compute_gating/over_capacity_1',
        'over_capacity_2_ratio/decoder_3/blocks/blocks_body/layer_000/moe/ffw/compute_gating/over_capacity_1',
        'over_capacity_2_ratio/decoder_3/blocks/blocks_body_1/layer_000/moe/ffw/compute_gating/over_capacity_1',
        'top1_expert/decoder_3/blocks/blocks_body/layer_000/moe/ffw/compute_gating',
        'top1_expert/decoder_3/blocks/blocks_body_1/layer_000/moe/ffw/compute_gating'
    ]
    self.assertEqual(set(expected_rep_unroll_summary), set(rep_unroll_summary))

    tf.Session.reset(target='')
    with tf.Session(graph=g) as sess:
      sess.run(tf.global_variables_initializer())
      rep_unroll_out, rep_unroll_summary = sess.run(
          [rep_unroll_out, rep_unroll_summary])
      var_values = sess.run(tf.trainable_variables())
    # Build a graph without RepeatLayer.
    g = tf.Graph()
    with g.as_default(), tpu_summary.context():
      tf.random.set_seed(None)
      enc = builder.EncoderLayerStack(
          'encoder', sub_layers=[builder.DenseReluDense('ffw')],
          num=2).Instantiate()
      dec = builder.DecoderLayerStack(
          'decoder', sub_layers=[builder.MoE('moe', decoder=True)],
          num=2).Instantiate()
      dec_out = _GetOutputs(enc, dec)
      dec_summary = tpu_summary.merge_all()

    expected_dec_summary = [
        'index_1/decoder_1/layer_000/moe/ffw/compute_gating',
        'index_1/decoder_1/layer_001/moe/ffw/compute_gating',
        'over_capacity_1/decoder_1/layer_000/moe/ffw/compute_gating/over_capacity',
        'over_capacity_1/decoder_1/layer_001/moe/ffw/compute_gating/over_capacity',
        'over_capacity_1_ratio/decoder_1/layer_000/moe/ffw/compute_gating/over_capacity',
        'over_capacity_1_ratio/decoder_1/layer_001/moe/ffw/compute_gating/over_capacity',
        'over_capacity_2/decoder_1/layer_000/moe/ffw/compute_gating/over_capacity_1',
        'over_capacity_2/decoder_1/layer_001/moe/ffw/compute_gating/over_capacity_1',
        'over_capacity_2_ratio/decoder_1/layer_000/moe/ffw/compute_gating/over_capacity_1',
        'over_capacity_2_ratio/decoder_1/layer_001/moe/ffw/compute_gating/over_capacity_1',
        'top1_expert/decoder_1/layer_000/moe/ffw/compute_gating',
        'top1_expert/decoder_1/layer_001/moe/ffw/compute_gating'
    ]
    self.assertCountEqual(expected_dec_summary, dec_summary)

    tf.Session.reset(target='')
    with tf.Session(graph=g) as sess:
      tf_vars = [
          enc.vars.layer_000.ln.w.scale, enc.vars.layer_000.ffw.w.wi,
          enc.vars.layer_000.ffw.w.wo, enc.vars.layer_001.ln.w.scale,
          enc.vars.layer_001.ffw.w.wi, enc.vars.layer_001.ffw.w.wo,
          enc.vars.final_layer_norm.w.scale, dec.vars.layer_000.ln.w.scale,
          dec.vars.layer_000.moe.moe.wi, dec.vars.layer_000.moe.moe.wo,
          dec.vars.layer_000.moe.ffw.top_2_gating.w,
          dec.vars.layer_001.ln.w.scale, dec.vars.layer_001.moe.moe.wi,
          dec.vars.layer_001.moe.moe.wo,
          dec.vars.layer_001.moe.ffw.top_2_gating.w,
          dec.vars.final_layer_norm.w.scale
      ]
      for val, var in zip(var_values, tf_vars):
        sess.run(tf.assign(var, val))
      dec_out, dec_summary = sess.run([dec_out, dec_summary])
      self.assertAllClose(dec_out, rep_unroll_out)

      for name, alt_name in zip(expected_dec_summary,
                                expected_rep_unroll_summary):
        self.assertAllClose(dec_summary[name], rep_unroll_summary[alt_name])

  def testParallelDecSelfAttentionRelativeBiasFFN(self):
    model_dim = 4
    num_heads = 2
    d_kv = 2
    d_ff = 8
    builder = gshard_builder.DenseBuilder.Params().Set(
        dtype=tf.float32,
        relative_attention_type='bias',
        model_dim=model_dim,
        attention_num_heads=num_heads,
        attention_combine_dims=True,
        attention_num_memory_heads=1,
        model_dim_reshape_segments=2,
        ff_dim=d_ff,
        attention_key_value_dim=d_kv).Instantiate()

    # Build a graph with separate attention and ffn layers.
    # Naively compute the output by adding the outputs of the two directly.
    g = tf.Graph()
    with g.as_default():
      tf.random.set_seed(None)
      x, seg_id, pos_id = self._GetInputs(reshape_m=True)
      atten = builder.DecSelfAttentionRelativeBias('atten').Instantiate()
      ffn = builder.DenseReluDenseGated('ffn', tf.nn.relu, True).Instantiate()
      y_atten, _ = atten.FPropDefaultTheta(x, seg_id, pos_id, tf.constant(0),
                                           tf.constant(0), tf.constant(0))
      y_ffn, _ = ffn.FPropDefaultTheta(x, seg_id, pos_id, tf.constant(0),
                                       tf.constant(0), tf.constant(0))
      y_exp = (y_atten + y_ffn) * (2.0**-0.5)
    tf.Session.reset(target='')
    with tf.Session(graph=g) as sess:
      sess.run(tf.global_variables_initializer())
      y_exp = y_exp.eval(session=sess)
      var_values = sess.run(tf.trainable_variables())

    # Build a graph with dedeciated parallel layer and load the variable values.
    # Expect output the same as the previous naive implementation.
    g = tf.Graph()
    with g.as_default():
      x, seg_id, pos_id = self._GetInputs(reshape_m=True)
      parallel = builder.ParallelDecSelfAttentionRelativeBiasFFN(
          'parallel', tf.nn.relu, hidden_dim_reshape_segments=2).Instantiate()
      y_parallel, _ = parallel.FPropDefaultTheta(x, seg_id, pos_id,
                                                 tf.constant(0), tf.constant(0),
                                                 tf.constant(0))
    tf.Session.reset(target='')
    with tf.Session(graph=g) as sess:
      tf_vars = [
          parallel.vars.w_atten.wq, parallel.vars.w_atten.wk,
          parallel.vars.w_atten.wv, parallel.vars.w_atten.wo,
          parallel.vars.wrb.wrb, parallel.vars.w_fflayer.wi_0,
          parallel.vars.w_fflayer.wi_1, parallel.vars.w_fflayer.wo
      ]
      for val, var in zip(var_values, tf_vars):
        sess.run(tf.assign(var, val))
      y_parallel = y_parallel.eval(session=sess)
      self.assertAllClose(y_exp, y_parallel)

  def testEmbedding(self):
    builder = gshard_builder.DenseBuilder.Params().Set(
        model_dim=4, model_dim_reshape_segments=2).Instantiate()
    ids = [[1, 2, 3], [3, 2, 1]]
    graph = tf.Graph()
    with graph.as_default():
      tf.random.set_seed(24332)
      py_utils.GetOrCreateGlobalStepVar()
      emb_layer_p = builder.Embedding('emb', vocab_dim=4)
      emb_layer = emb_layer_p.Instantiate()
      enc_out = emb_layer.FPropDefaultTheta(
          tf.convert_to_tensor(ids, dtype=tf.int32))

    expected_val = [[[[-0.67452705, -2.6386688], [1.1666715, 0.04592554]],
                     [[-1.0561675, -0.48270327], [0.7765603, 0.6768117]],
                     [[0.8349989, 0.67100984], [-0.15557083, 1.275625]]],
                    [[[0.8349989, 0.67100984], [-0.15557083, 1.275625]],
                     [[-1.0561675, -0.48270327], [0.7765603, 0.6768117]],
                     [[-0.67452705, -2.6386688], [1.1666715, 0.04592554]]]]
    with self.session(graph=graph) as sess:
      sess.run(tf.global_variables_initializer())
      enc_out_vals = sess.run(enc_out)
      self.assertAllClose(expected_val, enc_out_vals)

class UniTransformerTest(test_utils.TestCase):

  def _PreLoadInput(self):
    src = py_utils.NestedMap(
        ids=tf.constant([[2, 3, 1, 2], [4, 1, 4, 3]], dtype=tf.int32),
        segment_ids=tf.constant([[1, 1, 1, 2], [1, 1, 2, 2]], dtype=tf.int32),
        segment_pos=tf.constant([[0, 1, 2, 0], [0, 1, 0, 1]], dtype=tf.int32))
    tgt = py_utils.NestedMap(
        labels=tf.constant([[9, 1, 8, 1], [9, 8, 1, 8]], dtype=tf.int32),
        ids=tf.constant([[0, 9, 1, 8], [0, 9, 8, 1]], dtype=tf.int32),
        segment_ids=tf.constant([[1, 1, 2, 2], [1, 1, 1, 2]], dtype=tf.int32),
        segment_pos=tf.constant([[0, 1, 0, 1], [0, 1, 2, 0]], dtype=tf.int32))
    return py_utils.NestedMap(src=src, tgt=tgt)

  def _testUniTransformerFProp(self, use_moe=False):
    length_dim = 4
    graph = tf.Graph()
    params = gshard_builder.UniTransformer.Params().Set(
        gated_gelu=False,
        moe=use_moe,
        moe_gated_gelu=use_moe,
        positional_embedding=False,
        dtype=tf.float32,
        name='transformer',
        builder=gshard_builder.DenseBuilder.Params().Set(
            device_mesh_shape=[1, 1],
            device_mesh=None,
            relative_attention_num_buckets=32,
            relative_attention_type='bias',
            relative_attention_max_distance=128,
            dtype=tf.float32,
            num_devices=1,  # we call .Split num_devices on axis 0 (batch)
            relative_attention_use_universal_1d_position=True,
            e_dim=2 if use_moe else None,
            num_groups=1 if use_moe else None,
            c_dim=2 if use_moe else None,
            model_dim=32,
            attention_num_heads=8,
            moe_hidden_dim=128,
            ff_dim=128,
            attention_key_value_dim=8,
            attention_combine_dims=True),
        batch_size=32,
        sequence_length=length_dim,
        num_transformer_layers=2,
        aux_loss_coef=0.0,
        loss_denominator=None,
        label_smoothing=0,
        vocab_size=128,
        max_length=length_dim)
    with graph.as_default():
      py_utils.GetOrCreateGlobalStepVar()
      params.params_init = py_utils.WeightInit.Xavier(scale=1.0, seed=0)
      tf.random.set_seed(24332)
      model = params.Instantiate()

    with tf.Session(graph=graph) as sess:
      input_batch = self._PreLoadInput()
      loss = model.FPropDefaultTheta(input_batch)[0]['loss'][0]
      sess.run(tf.global_variables_initializer())
      loss_eval = sess.run(loss)
      golden_float = 5.761248 if use_moe else 5.635831
      test_utils.CompareToGoldenSingleFloat(self, golden_float, loss_eval)

  def _testTunableUniTransformerFProp(self,
                                      sub_layer_types=False,
                                      top_layer_types=False,
                                      bottom_layer_types=False):
    length_dim = 4
    graph = tf.Graph()
    params = gshard_builder.TunableUniTransformer.Params().Set(
        gated_gelu=False,
        moe=True,
        moe_gated_gelu=True,
        positional_embedding=False,
        dtype=tf.float32,
        name='transformer',
        builder=gshard_builder.DenseBuilder.Params().Set(
            device_mesh_shape=[1, 1],
            device_mesh=None,
            relative_attention_num_buckets=32,
            relative_attention_type='bias',
            relative_attention_max_distance=128,
            dtype=tf.float32,
            num_devices=1,  # we call .Split num_devices on axis 0 (batch)
            relative_attention_use_universal_1d_position=True,
            e_dim=2,
            num_groups=1,
            c_dim=2,
            model_dim=32,
            attention_num_heads=8,
            moe_hidden_dim=128,
            ff_dim=128,
            attention_key_value_dim=8,
            attention_combine_dims=True),
        batch_size=32,
        sub_layer_types=sub_layer_types,
        top_layer_types=top_layer_types,
        bottom_layer_types=bottom_layer_types,
        sequence_length=length_dim,
        num_transformer_layers=6,
        aux_loss_coef=0.0,
        loss_denominator=None,
        label_smoothing=0,
        vocab_size=128,
        max_length=length_dim)
    with graph.as_default():
      py_utils.GetOrCreateGlobalStepVar()
      params.params_init = py_utils.WeightInit.Xavier(scale=1.0, seed=0)
      tf.random.set_seed(24332)
      model = params.Instantiate()

    with tf.Session(graph=graph) as sess:
      input_batch = self._PreLoadInput()
      loss = model.FPropDefaultTheta(input_batch)[0]['loss'][0]
      sess.run(tf.global_variables_initializer())
      loss_eval = sess.run(loss)
      golden_float = 6.623055
      test_utils.CompareToGoldenSingleFloat(self, golden_float, loss_eval)

  def testUniTransformerFProp(self):
    self._testUniTransformerFProp(use_moe=False)

  def testUniTransformerMoEGluFProp(self):
    self._testUniTransformerFProp(use_moe=True)

  def testTunableUniTransformerMoEGluProp(self):
    self._testTunableUniTransformerFProp(
        sub_layer_types=['attn', 'attn'],
        top_layer_types=['attn', 'moe'],
        bottom_layer_types=['ffw', 'ffw'])

  def testUniTransformerParallelFProp(self):
    length_dim = 4
    graph = tf.Graph()
    params = gshard_builder.UniTransformer.Params().Set(
        gated_gelu=False,
        gated_ffn_activation=tf.nn.relu,
        positional_embedding=False,
        dtype=tf.float32,
        name='transformer',
        parallel_ffn=True,
        hidden_dim_reshape_segments=2,
        conv_kernel_size=2,
        builder=gshard_builder.RecurrentDenseBuilderParallelDecode.Params().Set(
            device_mesh_shape=[1, 1],
            device_mesh=None,
            relative_attention_num_buckets=32,
            relative_attention_type='bias',
            relative_attention_max_distance=128,
            dtype=tf.float32,
            num_devices=1,  # we call .Split num_devices on axis 0 (batch)
            relative_attention_use_universal_1d_position=True,
            model_dim=32,
            model_dim_reshape_segments=2,
            attention_num_memory_heads=1,
            proj_weight_hdim=2,
            attention_num_heads=8,
            ff_dim=128,
            attention_key_value_dim=8,
            attention_combine_dims=True),
        batch_size=32,
        sequence_length=length_dim,
        num_transformer_layers=2,
        aux_loss_coef=0.0,
        loss_denominator=None,
        label_smoothing=0,
        vocab_size=128,
        max_length=length_dim)
    with graph.as_default():
      py_utils.GetOrCreateGlobalStepVar()
      params.params_init = py_utils.WeightInit.Xavier(scale=1.0, seed=0)
      tf.random.set_seed(24332)
      model = params.Instantiate()

    with tf.Session(graph=graph) as sess:
      input_batch = self._PreLoadInput()
      loss = model.FPropDefaultTheta(input_batch)[0]['loss'][0]
      sess.run(tf.global_variables_initializer())
      loss_eval = sess.run(loss)
      test_utils.CompareToGoldenSingleFloat(self, 5.832047, loss_eval)

  def testUniTransformerFPropQuantized(self):
    length_dim = 4
    graph = tf.Graph()
    params = gshard_builder.UniTransformer.Params().Set(
        gated_gelu=False,
        positional_embedding=False,
        dtype=tf.bfloat16,
        name='transformer',
        is_quantize=True,
        builder=gshard_builder.DenseBuilder.Params().Set(
            device_mesh_shape=[1, 1],
            device_mesh=None,
            relative_attention_num_buckets=32,
            relative_attention_type='bias',
            relative_attention_max_distance=128,
            dtype=tf.bfloat16,
            num_devices=1,  # we call .Split num_devices on axis 0 (batch)
            relative_attention_use_universal_1d_position=True,
            model_dim=32,
            attention_num_heads=8,
            moe_hidden_dim=128,
            ff_use_bias=True,
            ff_dim=128,
            attention_key_value_dim=8,
            attention_combine_dims=True),
        batch_size=32,
        sequence_length=length_dim,
        num_transformer_layers=2,
        aux_loss_coef=0.0,
        loss_denominator=None,
        label_smoothing=0,
        vocab_size=128,
        max_length=length_dim)
    with graph.as_default():
      py_utils.GetOrCreateGlobalStepVar()
      params.params_init = py_utils.WeightInit.Xavier(scale=1.0, seed=0)
      tf.random.set_seed(24332)
      model = params.Instantiate()

    with tf.Session(graph=graph) as sess:
      input_batch = self._PreLoadInput()
      loss = model.FPropDefaultTheta(input_batch)[0]['loss'][0]
      sess.run(tf.global_variables_initializer())
      loss_eval = sess.run(loss)
      self.assertLess(abs(loss_eval - 6.015), 0.02)

class BertModelTest(test_utils.TestCase):

  def setUp(self):
    super().setUp()
    tf.random.set_seed(12356)

  def _PreLoadInput(self):
    src = py_utils.NestedMap(
        ids=tf.constant([[2, 3, 1, 2, 4, 1, 4, 3]], dtype=tf.int32),
        segment_ids=tf.constant([[1, 1, 1, 1, 1, 1, 1, 0]], dtype=tf.int32),
        segment_pos=tf.constant([[0, 1, 2, 3, 4, 5, 6, 0]], dtype=tf.int32))
    return src

  def _BertTransformerParams(self):
    length_dim = 8
    use_moe = False  # Make it work for moe case later.
    p = gshard_builder.BertTransformer.Params().Set(
        name='transformer',
        gated_ffn_activation=None,
        moe=use_moe,
        moe_gated_gelu=use_moe,
        positional_embedding=False,
        dtype=tf.float32,
        builder=gshard_builder.DenseBuilder.Params().Set(
            device_mesh_shape=[1, 1],
            device_mesh=None,
            relative_attention_num_buckets=32,
            relative_attention_type='bias',
            relative_attention_max_distance=128,
            dtype=tf.float32,
            num_devices=1,  # we call .Split num_devices on axis 0 (batch)
            relative_attention_use_universal_1d_position=True,
            e_dim=2 if use_moe else None,
            num_groups=1 if use_moe else None,
            c_dim=2 if use_moe else None,
            model_dim=32,
            attention_num_heads=8,
            moe_hidden_dim=128,
            ff_dim=128,
            attention_key_value_dim=8,
            attention_combine_dims=True),
        batch_size=32,
        sequence_length=length_dim,
        num_transformer_layers=2,
        aux_loss_coef=0.0,
        loss_denominator=None,
        label_smoothing=0,
        vocab_size=128,
        max_length=length_dim)
    return p

  def testBertTransformerFProp(self):
    graph = tf.Graph()
    params = self._BertTransformerParams()
    with graph.as_default():
      py_utils.GetOrCreateGlobalStepVar()
      params.params_init = py_utils.WeightInit.Xavier(scale=1.0, seed=0)
      tf.random.set_seed(24332)
      bert_model = params.Instantiate()

    with tf.Session(graph=graph) as sess:
      input_batch = self._PreLoadInput()
      metrics_t = bert_model.FPropDefaultTheta(input_batch)[0]
      loss = bert_model.loss
      sess.run(tf.global_variables_initializer())
      num_total_tokens = sess.run(metrics_t['num_total_tokens'][0])
      test_utils.CompareToGoldenSingleFloat(self, 7, num_total_tokens)

      num_masked_tokens = sess.run(metrics_t['num_masked_tokens'][0])
      test_utils.CompareToGoldenSingleFloat(self, 3, num_masked_tokens)

      loss_eval = sess.run(loss)
      golden_float = 5.97803
      test_utils.CompareToGoldenSingleFloat(self, golden_float, loss_eval)

if __name__ == '__main__':
  test_utils.main()

redpajama_set_name: RedPajamaGithub


Biochemistry is the study of chemical processes within and relating to living organisms. This includes both plants and animals, with a particular focus on cellular activity. Biochemistry is often referred to as a crossover field of chemistry, wherein specialists are educated in not just chemistry in general, but the intricate details of biological chemistry within living organisms. A large focus of biochemistry deals with the interactions of cellular components and often overlaps with molecular biology as well. Macromolecules (such as proteins, nucleic acids, carbohydrates and lipids) are a heavy focus of research and a haven for discovery providing insight into the biological and chemical functions associated with the complex systems that make life possible.
At Price Heneveld, we understand and appreciate the intricacies that can make biological discoveries patentable. We also understand the valuable intellectual property that can be associated with various processes used to create and study cellular activity. Such processes may include genetic coding, protein synthesis (translation), genetic signaling (signal transduction), and gene transcription. Most importantly, Price Heneveld follows the ever-changing landscape of legal developments in the biochemical field that specifically relate to the patentability of particular biological processes. In this way, our attorneys are suited to help navigate clients through the patent process as efficiently as possible.
We understand that in today's technologically competitive environment, a company's intellectual property —its innovations and creativity— is one of its most valuable assets.
Learn more about our history, mission and expertise.
© 2017, Price Heneveld LLP. All Rights Reserved.


Sometimes I don't need to write anything… sometimes I just let the story tell itself.
Autoimmune diseases aren't just weird names we make up to give people something to do.
They are life changing… and sometimes, sadly, life ending.
To those who lose their battles I send my love and respect to the families and friends.
To those that keep fighting, I send you all the strength and best wishes I can give.
In memory of all those who have lost their battle.
Autoimmune diseases: a leading cause of death among young and middle-aged women in the United States.
This study assessed the effect of autoimmune diseases on mortality among women.
Counts of autoimmune disease deaths were compared with frequencies of the 10 "official" leading causes of death among women in the United States in 1995.
Autoimmune disease deaths exceeded the frequency of the 10th leading cause in every age category of women younger than 65 years and exceeded that for the eighth leading cause in the 15 to 24, 25 to 44, and 45 to 64 years age groups.
Autoimmune diseases constitute a leading cause of death among young and middle-aged women. This fact is obscured by current methods used to identify leading causes.


Cong Ma, the creative mind behind the awarded project Tea set by Cong Ma explicates, Inspired by the world-known Chinese writer Bi Feiyu's novel "Qing Yi" which is also known as "The Moon Opera. "Qing Yi" Zisha tea set: handle takes traditional Peking opera's action of swing sleeves as original shape, the knob is inspired by Peking opera's eye makeup. take the shape of water drop for the body.Tea set has used famous intangible cultural heritage, the Zisha firing technique. Tshape of cup base is similar to the shape of carved window in classic Chinese Garden, the side shape follows water waves in order to transmits Peking Opera culture through a simple and modern art design..


Had a great experience working with Veena to get wedding favours. We got the elephant tea light holders which was a big hit with our guests. Veena was very helpful with suggestions. She was very prompt in getting back to any messages, delivery was on time as well. Thank you so much for all your help and support during the busy wedding period. Would highly recommend.
Veena was helpful enough to bring me a sample at short notice. she also managed to deliver n time. thank you for personally coming to deliver my package.
Thank you for your valuable feedback Shruthi. It was such a pleasure to be part of your big day! I am glad I was able to help in whatever way I could!
Get best quote from रachnayein and book your date! Check their prices and availability. Send enquiry to your selected list of Wedding Favors at WedMeGood and choose the best. Browse for more Wedding Favors in Bangalore and more wedding vendors at WedMeGood and plan your wedding hassle free.


Hola grupo me gustaría saber si alguien aca me puede postear donde consigo una rom/ firmware de una tableta kaissen8000pro la abri y su procesador es huawei mu509- c pero no lo consigo por ninguna parte. A tablet computer LCD touchscreen display processing circuitry, commonly shortened to tablet, is a mobile device, typically with a mobile operating system flat package.
Android Firmware List of Android Phones getting Android 4. Modern tablets largely resemble modern smartphones, the only. Que hacer en caso de que la ROM no cumple el requisito?
Manuel alejandro amaya rodriguez dijo. Tablets being computers, do what other personal computers do but lack some I/ O capabilities that others have.
Si la ROM no cumple el requisito ClockWorkMod ( CWM), TeamWin Recovery Project ( TWRP), estas ROMs normalmente viene modificadas, en este caso es necesario tener instalado el recovery para poder instalar la ROM, entonces debe ser una copia de seguridad de algun recovery como pueden venir. 4 KitKat Firmware Update [ Sony HTC Official List, Samsung Micromax Updated List]. Huawei Consumer Business Group ( BG) is one of Huawei' s three business groups huawei g7, providing a range of products including mobile phones( huawei mate7, awei is a leading global provider of information , communications technology ( ICT) infrastructure smart devices. AOSP ROMs refer to custom ROMs that are built from the original Android source code.
Huawei g510 original firmware download. TouchWiz Sense MotoBlur ROMs on the other hand are also built from the original Android source code.
Lista de Stock ROMs para telefonos Huawei.
Download all the latest Huawei firmwares, flash files, flash tool, stock rom. Get original ( official) and custom Huawei firmware update, Huawei firmware upgrade, Huawei firmware downgrade software, Huawei software mobile, Huawei mobile software update, Huawei ALL MTK SP flashTool firmware, firmwares collection, ROM Huawei, mobile phones, huawei firmware update tool, Huawei mate firmware. Paso 3 Este paso es imprecidible cualquiera que sea tu objetivo y lo dividire en dos y es la instalacion de el recovery CWM y el restablecimient de Oficil recovery para el Huawei Y210 ambos los puedes descargar de aqui Las partes de este paso son mutuamente excluyentes es decir las puedes hacer por separado cuando las necesites.
Hard Reset, sitio web con tutoriales e instrucciones para resetear, restaurar cualquier smartphone, entrar en modo recovery y download.


text:
1660 Soldiers Field Rd, Suite 200, Brighton, MA 02135
info@monsterhousebooks.com
Monster House Books
Publishers of Young Adult Books with Kick-Ass Heroines
Angelbound
Dimension Drift
Fairy Tales Of The Magicorum
Pixieland Diaries
Pixieland Diaries Sampler
Pixieland Diaries (Book 1 of the Pixieland Diaries)
Calla (Book 2 of the Pixieland Diaries)
Christina Bauer
Valya Fefilova
BauersBooks.com
Enter a world that's a lot like our own…only fairies, shifters, and wizards are REAL. They're called the Magicorum, only their magic is disappearing. This series will lead you through the lives of three of them:
– Bryar Rose (Sleeping Beauty)
– Elle (Cinderella)
– Avianna (the evil queen from Snow White)
Get a FREE copy of Christina's novella, BEVERLY HILLS VAMPIRE, when you sign up for her personal newsletter: https://tinyurl.com/bauersbooks ***Not available in stores***
WOLVES AND ROSES (Book 1)
Available as an audiobook on iTunes or Audible!
Seventeen-year-old Bryar Rose has a problem. She's descended from one of the three magical races—shifters, fairies, or witches. That makes her one of the Magicorum, and Magicorum always follow a fairy tale life template. In Bryar's case, that template should be Sleeping Beauty.
"Should" being the key word.
Trouble is, Bryar is nowhere near the sleeping beauty life template. Not even close. She doesn't like birds or woodland creatures. She can't sing. And she certainly can't stand Prince Philpot, the so-called "His Highness of Hedge Funds" that her aunties want her to marry. Even worse, Bryar's having recurring dreams of a bad boy hottie and is obsessed with finding papyri from ancient Egypt. What's up with that?
All Bryar wants is to attend a regular high school with normal humans and forget all about shifters, fairies, witches, and the curse that Colonel Mallory the Magnificent placed on her. And she might be able to do just that–if only she can just keep her head down until her eighteenth birthday when the spell that's ruined her life goes buh-bye.
But that plan gets turned upside down when Bryar Rose meets Knox, the bad boy who's literally from her dreams. Knox is a powerful werewolf, and his presence in her life changes everything, and not just because he makes her knees turn into Jell-O. If Bryar can't figure out who—or what—she really is, it might cost both her and Knox their lives… as well as jeopardize the very nature of magic itself.
MOONLIGHT AND MIDTOWN (Book 2)
After battling werewolves and evil aunties, Bryar Rose is ready to enjoy her new life. No more crazy aunties. Her curse is toast. And Bry's new man, Knox, is literally a dream come true. Best of all, Bry will soon attend a regular high school. Forget those sketchy tutors! To get ready, Bry is dedicating the rest of her summer to some serious back-to-school shopping with her best friend, Elle. It's a blast, except for one thing:
Mysterious strangers are following Bry across Manhattan.
***An interim novella between WOLVES AND ROSES and SHIFTERS AND GLYPHS***
SHIFTERS AND GLYPHS (Book 3)
After being raised by the meanest fairies in the history of ever, Bryar Rose is now free to live her own life. For the first time, she's attending West Lake Prep, a regular high school. Well, mostly regular. Some students are actually hidden members of the Magicorum. In other words, they're really wizards, fairies, or shifters. Bry doesn't mind, though. She's thrilled to enjoy all the new experiences of being around normal kids her age, from locker pranks to lunchtime mystery meat. Everything is going along great, except for one thing.
Bry's dreams about the pyramids of Egypt have gotten darker and more sinister. Every night, she sees her new man Knox and her best friend Elle in danger.
With no other choice, Bry plans to leave school to explore the pyramids on her own. But her new man Knox discovers the scheme and is having none of it. He wants to stay by her side, no matter what. It's a good thing too, because Bry must solve the mystery of her attraction to the pyramids and soon. Otherwise, it could cost the lives of those she loves most…and that means not only Knox, but also her best friend Elle.
SLIPPERS AND THIEVES (Book 4)
Years ago, Elle—never call her Cinderella—escaped her evil step family in order to build a new life for herself in Manhattan. Today, Elle's awful past is a distant memory. In fact, Elle even attends West Lake Prep, an exclusive high school where regular humans mix with members of the Magicorum, such as fairies, shifters and witches. Although she still must live in hiding from her evil step family, Elle always has found ways to get whatever her heart desires.
That is, until Alec Le Charme.
BANDITS AND BALLGOWNS (Book 5)
Alec and Elle have fallen for each other, hard. It's a Cinderella story come true!
Possibly.
Okay, it's a total disaster.
EVIL QUEENS AND GOBLIN KINGS (Book 6)
Like all Magicorum, seventeen-year-old Avianna is supposed to follow a fairy tale life template. Too bad hers is the evil queen from Snow White. Even so, Avie makes herself the best evil queen in her coven. Mastering potions? Easy. Enduring a bitey pet raven? Bring on the enchanted Band-Aids. But there's one requirement Avie can't accept with a smile.
On her eighteenth birthday, Avie must marry the handsome-yet-creepy Ice White, CEO of Tundra Pharmaceutical. What a mess.
Magicorum Box Set (Books 1-3)
Books 1-3 of the popular Fairy Tales of the Magicorum series are now in one ebook collection!
Meet the author: Christina Bauer
Christina Bauer thinks that fantasy books are like bacon: they just make life better. All of which is why she writes romance novels that feature demons, witches, dragons, and other random stuff that she brainstorms while riding the Boston T. Christina lives in Newton, MA along with her husband, son, and semi-insane golden retriever, Ruby. Get a FREE copy of Christina's novella, BEVERLY HILLS VAMPIRE, when you sign up for her personal newsletter: https://tinyurl.com/bauersbooks ***Not available in stores***

redpajama_set_name: RedPajamaCommonCrawl


text:
« Hailee Steinfeld In Talks For The Hunger Games
Marisa Tomei's 2011 Oscar Makeup – HowTo Tips »
Helena Bonham Carter Rocked Mass Of Curls At 2011 Oscars
Last updated on February 9th, 2015 by Karen Marie Shelton
When it comes to fashion, Britian's Helena Bonham Carter is truly a mixed bag of tricks. Listed by E's Fashion Police as one of the top five celebrities to watch on the Oscar 2011 Red Carpet, Carter indeed was watchable. Carter, 44, was nominated for Best Supporting Actress for The King's Speech.
Although she lost The Best Supporting Actress award, Carter won the adoration of E's Kelly Osbourne who has been crushing on Carter throughout the entire awards season.
While live on E! News during the Academy Awards Red Carpet broadcast Kelly expressed her admiration.
She said to Carter "I adore you. I love the way that you dress, I love the way you come on the carpet and you set a standard and don't care what people think. You look beautiful tonight. I am obsessed with you." Carter returned the favor telling Kelly "I love you too." It was a very touching moment.
Mass Of Curls Piled High On Top Of Head
While many fashionistas deemed Carter to be one of the worst dressed at the 2011 Oscars, some placed her on the best list. Vanity Fair was one of the magazines which listed her as best dressed.
Ironically, the star who was dressed by Oscar winning costume designer Colleen Atwood, was spotted wearing a flip flop shoe accessory pinned into her mass of chocolate brown shimmering curls which were piled high on her head. Although Carter's curls appeared to be unrestrained, at further examination her tresses were masterfully coiffed to give the impression of free form ringlet cascades. As reported by the media, the day of the Oscars, Carter's mother visited the EXTRA Luxury Lounge, where she picked up a pair of FlipOut Sandals adorned with miniature crown jewels. The little crown jewel estimated to cost around $10 was nestled into Carter's bouncy curls.
Helena Bonham Carter Collaborated With Costume Designer Colleen Atwood
Before the 2011 Red Carpet parade began Carter let it be known she had not hired a fashion stylist to help her select a gown. Instead she put her head together Atwood, with her Alice In Wonderland costumer. Atwood was nominated for an Oscar for her work on the film where Carter played the Red Queen. The very proper costume designer picked up an Oscar for Alice even though it was not her first golden statue.
When Atwood's name was called the cameras panned to Carter sitting with Tim Burton. You could see the excitement on her face at the announcement of Atwood winning the Oscar.
Carter collaborated with Atwood to celebrate "film rather than fashion." The result? A Red Carpet gown which was an 1880s-inspired black velvet gown which she paired with Solange Azagury-Partridge earrings and a Lulu Guinness fan-shaped clutch. Like the E fashion team predicted, she definitely one to watch.
Who Are The Top Five Stars To Watch On 2011 Academy Awards Red Carpet? E's Catt Sadler 2011 Pre-Red Carpet Party With Four Predicted Fashion Trends For Oscars Hailee Steinfeld Elegant Updo With Glam Headband At 2011 Oscars E Fashion Police Picks Top Five Must See Celebrities To Watch For 2011 Golden Globes Florence Welch Of Florence And The Machine Lets Her Natural Hair Texture Rule At 2011 Oscars
This entry was originally posted on Monday, February 28th, 2011 at 9:40 pm	and is filed under 2011 Academy Awards, Academy Awards, Beauty Beat, Brunette Hair Color, Celebrity Bites, Celebrity Gossip, Celebrity Hairstyles, Celebrity News, Celebrity News & Juice, Events and Nightlife, Fashion, Hair, Hair Accessory, Hairstyles, Jewelry & Accessories, Movies & Films, Naturally Curly, News, Ramblings On Current News & Events, Shoes, The Academy, TV's Picks & Pans, Updo Hairstyle, Updo Hairstyles, Women's Hairstyles. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.


text:
GOP lawmakers inadvertently exposed their fake populism at recent House hearing
Phil Mattera, DC Report @ Raw Story
This article was paid for by reader donations to Raw Story Investigates.
Congressman Jim Jordan during a hearing on The Administrative Procedure Act. (Screenshot)
This article was paid for by Raw Story subscribers. Not a subscriber? Try us and go ad-free for $1. Prefer to give a one-time tip? Click here.
Some analyses of Trumpism and Republican populism have claimed to detect a strain of anti-corporate sentiment. It is true that today's right-wingers are willing to criticize big tech companies for supposedly treating them unfairly, but most of the time the GOP continues to serve the interests of big business.
That was clear during an important hearing just held by the House Judiciary Committee's subcommittee on antitrust, commercial and administrative law. Subcommittee chair David Cicilline (D-R.I.), vice-chair Pramila Jayapal (D-Wash.), other Democratic members and the witnesses all raised serious questions about the current regulatory system, focusing on issues such as disclosure and social equity.
The Republicans, on the other hand, did their best to change the subject or spoke in favor of less rather than more oversight. Ranking member Ken Buck (R-Colo.) used his opening remarks to attack "executive overreach" and praise the Trump Administration's wholesale attack on regulation.
Jim Jordan (R-Ohio) spent his time attacking what he claimed was a plan by the Justice Department to treat parents critical of school boards as domestic terrorists. One of the witnesses, NAACP climate justice director Jacqueline Patterson, was asked by Dan Bishop (R-N.C.) whether she was a revolutionary. She was also chastised for a facetious tweet about vaccines. The comments of GOP members on regulation were mainly limited to attacks on "woke bureaucrats."
Despite these antics, there was a serious exchange between the Democrats and the witnesses on the failures of the current regulatory system. These issues are also addressed in the Stop Corporate Capture Act introduced by Rep. Jayapal. The legislation would create more transparency in rulemaking, reduce corporate influence over the process and create a framework for considering social equity. It would fine companies that lie about the impact of public interest rules. It would also create a Public Advocate to provide for more robust public participation.
It turns the usual discussion on its head. Rejecting the idea of executive overreach, the bill correctly diagnoses the problem as a situation of what one might call regulatory anemia. Agencies are not aggressive enough in tackling serious problems relating to the environment, the workplace and the marketplace. The parties meant to be targeted instead are playing an outsized role in creating the rules. Hence the reference in the bill's title to regulatory capture.
Jayapal's proposal is what one might call a populist approach to reforming the regulatory system—one that is not likely to receive support from corporate lobbyists. When they are not simply kicking up dust, Republicans, by contrast, are doing the bidding of big business by continuing the Trump Administration's drumbeat against regulation.
This is one of those areas in which the conventional labels of U.S. politics continue to baffle me. Why are those working to benefit giant corporations called populists, while those who are seeking to rein in that power are called elitists?
Opinion DC Report Raw Exclusives
'We don't want you here': Australians are mocking MAGA fans threatening to boycott their country
Former Melania Trump pal says she's been cooperating with prosecutors 'for years'
'Alternate' Michigan elector claims he got marching orders from a Trump lawyer: report
These are the symptoms 'long-haul' Covid patients suffer from
Rand Paul's opponent hands him a righteous smackdown for MLK Day
Trump kids' refusal to pay their bills is coming back to haunt them in DC investigation: report
'How dare you': GOP's Kevin McCarthy faces backlash for Martin Luther King Day comments
Trump associate George Nader pleaded guilty to felony conspiracy to defraud the US government: report
MSNBC's Morning Joe and Mika mock 'loyal viewer' Trump after he makes illiterate attack on them
Trump allies think Mitch McConnell is behind leaks about feud with Ron DeSantis
NY sheriff running for governor pleads with judge to go easy on 'good friend' who rioted at the Capitol
Trump feels 'betrayed' by DeSantis after singlehandedly creating his political rise: NYT reporter
'Don't want to sound like a conspiracy theorist but...' Trump fans hope he picks long-dead JFK Jr for 2024 VP
Trump uses official presidential seal to promote his newly renovated golf course
Former FBI agent says more sedition charges are likely coming for Jan. 6 attackers
WATCH: Anti-vaccine police sergeant flips out on 'goose steppers' after restaurant calls the cops on her
Wealthy venture capitalist's podcast goes off the rails after he dismisses Uyghur genocide: 'It is below my line'
MSNBC guest: Manchin and Sinema 'are the white people Martin Luther King Jr. warned us about'
'Performative drivel': Marco Rubio mocked and schooled after taking MLK quote out of context
WATCH: Ron DeSantis squirms after being asked whether Trump is a good role model for kids
Ron DeSantis' is playing a 'game of chicken' with the Supreme Court and it won't end well for him: legal analyst
'Lord of the Lies': CNN's Acosta warns all of Trump's false stories are starting to catch up with him


text:
No right to bear unlicensed machine guns, federal court says
Tennessee State Guard commander Richard Hamblen said it's his Second Amendment right as part of a militia to convert assault rifles into fully automatic weapons. The Sixth US Circuit Court of Appeals disagreed.
By Warren Richey Staff writer
@WarrenRichey
A former commander in the Tennessee State Guard has lost an appeal to overturn his conviction for trying to provide his soldiers with homemade machine guns for possible use in defending the state.
On Wednesday, a federal appeals court in Cincinnati threw the case out of court.
"Whatever the individual right to keep and bear arms might entail, it does not authorize an unlicensed individual to possess unregistered machine guns for personal use," said the three-judge panel of the Sixth US Circuit Court of Appeals.
Richard Hamblen was arrested in 2004 by federal firearms agents and charged with possession of nine unregistered machine guns.
Second Amendment argued
At trial and in his appeal, Mr. Hamblen argued that he and his soldiers had a Second Amendment right as members of the state militia to possess military-grade weapons. He said Tennessee's state guard arsenal included only 21 M-16 rifles for 3,500 volunteer soldiers.
Concerned that his unit, the 201st Military Police Battalion, might get called into active duty, Hamblen obtained gun conversion kits to make semi-automatic rifles into fully automatic rifles. At least one machine gun was used in a training exercise.
Confronted by federal agents, Hamblen told the truth. He showed the unregistered machine guns to the authorities and informed them that he was merely exercising his Second Amendment right to keep and bear arms.
"I wasn't really consciously setting out to challenge the law and authority, but I figured I'd be on good constitutional footing," he said in an interview. "It seemed like a good idea at the time – would I do it again? No."
Hamblen, who runs a mirror and glass business in Memphis, was convicted and served 13 months in prison. He says he's spent roughly $50,000 on legal fees.
Hamblen had asked the Sixth Circuit judges to endorse his view that all gun control laws are unconstitutional. "If a person can afford to buy it, they can have it," he says.
Supreme Court has said gun rights may be limited
It is a position that runs counter to the majority view in the US Supreme Court's 2008 gun rights ruling in District of Columbia v. Heller. In that case, the court struck down a ban on handguns in Washington, D.C., and declared that the Second Amendment protects an individual right to keep and bear arms. But the high court went on to suggest that individual gun rights are not unlimited and could be subject to reasonable regulations.
Both the Eighth Circuit in St. Louis and the Ninth Circuit in San Francisco have held that individuals do not enjoy a Second Amendment right to possess unregistered machine guns.
Hamblen is not impressed by these rulings. "If the founders had intended for there to be reasonable restrictions on the Second Amendment they would have put that in the language [of the amendment]," he said. "They were certainly capable of writing 'unreasonable' into the Fourth Amendment when it talks about unreasonable searches and seizures."
Hamblen says he's not surprised that he lost at the appeals court. But he says he is surprised that he's received no help from gun-rights advocates. "They are treating me like I'm a skunk at the picnic," he said.
As for his case, he plans to fight on. He says his lawyer is preparing a final appeal, a petition to the US Supreme Court. "Why stop now? I've already done the hard part. I've already done my time," Hamblen says. "All they can do is say no."
More guns equal more crime? Not in 2009, FBI crime report shows.
Md. appeals court upholds 'assault weapon' ban: a new challenge to scope of Second Amendment?
You could drop Samsung's Galaxy S7 in the pool (but you probably shouldn't)


text:
Call Us 800 (AZIZI) 29494
About Azizi Developments
Riviera MBR City
Park Avenue, MBR City
Victoria MBR City
Recent Handovers
© 2018 AZIZI Developments. All right reserved
Search in AZIZI Developments
Home / Media Centre / Press Releases / Azizi Developments records sales of AED 1.3bn at Cityscape Global 2017
Keep up to date with what's going on at Azizi Developments with our latest press releases. You can also download any press releases along with their respective images.
Azizi Developments records sales of AED 1.3bn at Cityscape Global 2017
Dubai, UAE; 14 September 2017: Azizi Developments, a fast growing real estate developer operating in the UAE for over a decade, has announced that it has recorded sales of AED1.3billion over the Cityscape Global 2017 held between Sep 11 and 13 in Dubai. This has been the most successful edition of the event for Azizi Developments till date.
On day one of Cityscape itself, the entire phase one and 50 per cent of the inventory of phase two of the AED12bn waterfront project Azizi Riviera was sold out.
Inspired by the French Riviera, Azizi Riviera is collectively made up of 69 mid-rise residential buildings of 13,000 units of studio, one-bedroom and two-bedroom apartments, a mega integrated retail district and a four and a five-star hotel. Located in the prestigious Meydan One district, the project commenced construction in July this year with the completion of phase one and two scheduled for the second half of 2018.
Azizi Developments has also witnessed successful sales across a number of its other projects at Cityscape 2017, including Farhad Azizi Residences in Dubai Healthcare City, Azizi Mina serviced apartments on The Palm Jumeirah and residential developments at Al Furjan. The total value of all projects showcased at Cityscape 2017 amounted to approximately AED20billion.
Farhad Azizi, CEO of Azizi Developments, said: "Cityscape 2017 proved to be an excellent platform for us and we are delighted with our performance at the exhibition. The fact that we were one of the busiest stands shows the insatiable appetite of buyers and investors for quality real estate projects which we are committed to deliver. The visit by His Highness Sheikh Mohammed bin Rashid Al Maktoum made it even more special for us."
He added, "Thanks to the vision of His Highness, Dubai has grown to become an attractive destination for developers, home buyers and investors. Azizi Developments is committed to contributing to the realisation of this vision of developing Dubai by delivering world class unique community lifestyle projects to buyers and investors."
A recent study released by Cityscape Global and a YouGov Survey stated that the UAE has retained its position as the most desirable country for GCC real estate investment in the Middle East.
Azizi Developments has been conceptualising and developing new projects across the city to drive this demand from GCC investors and individual buyers, especially ahead of Expo 2020.
The Azizi Riviera has been Azizi Developments' most ambitious development till date. Following its success at Cityscape Global 2017, the developer said it would announce two new mega developments at Meydan One in the last quarter of this year. The projects will be four times the size and value of the Azizi Riviera.
Azizi Developments is a leading developer based in Dubai with an extensive portfolio of modern luxury residential and commercial properties across the emirate's most sought-after locations. Our properties, through which we aim to enrich the lives of our residents and investors, cater to all lifestyles.
We have delivered thousands of homes, have over 54 ongoing projects that will be delivered by 2023, and another 130+ in planning that are projected to be delivered by 2025.
Suite No. 805 (Customer Service)
Suite No. 1302 (Sales)
Conrad Hotel,
Sheikh Zayed Road, Dubai, UAE
Toll Free: 800 AZIZI (29494)
Email: ,
*First Name. *Last Name.
*Email Address.
©2021 AZIZI Developments We accept:


text:
Vaccination News
Adiantku December 23, 2020 4 min read
In our previous PS4 v PC Graphics article we considered the graphics performance of the...
In our previous PS4 v PC Graphics article we considered the graphics performance of the Sony PlayStation 4 against a personal computer using systems that were comparable in cost. Since there are thousands of games out there strictly for adults, I would say there is no limit on playing video games. It's no worse than watching TV. In fact, I'd say games are better because it helps your problem-solving skills and hand-eye coordination. I might write a Hub about this. Warner finally lifted the lid on its much-rumoured Harry Potter role-playing game coming to consoles and PC in 2021. You can test your gaming skills by joining an online tournament. If you think that you're great a certain game, why not prove it? Perhaps you enjoy driving games, or blasting enemies more. Judging the wind is one of the most difficult parts of the game but using this overlay app players can suddenly become extremely accurate even in very strong wind condition. Using the overlay app was always a grey area and many players were not happy and were saying it was basically a way of cheating. For a long time there was no word from Playdemic the Golf Clash creators. However, early in 2019 the news came out that they would be banning the use of the overlay app. Long Gone Days is a role-playing game set in a dystopian future where the player takes on the role of a soldier from an underground country named "The Core" after he's deployed to a mission. After discovering the truth about the operation he deserts to find a way to prevent the upcoming war. The game also deploys the use of a Morale system to motivate other party members and the topical issues covered by the plot. For example, the concept behind Super Mario Bros. didn't come from wanting to make an interesting platformer necessarily, but wanting to create an "athletic" game. "I wanted to build upon our tradition of what we called 'athletic games' at the time – games where you controlled a guy and had to jump a lot to overcome obstacles," Miyamoto said. "We felt strongly about how we were the first to come up with that genre, and it was a goal of ours to keep pushing it. Of course this is subjective to which best suits your needs however, I find PC far superior to console. The sheer value and utility you get from a good PC is unrivaled by consoles. You can use your gaming PC to crush your opponents and customize it to meet your needs. You can use it productively for work too. There's so many possibilities and uses of a PC that just are not offered by a console (At least not yet). I like to use a car analogy when discussing this topic. Consoles are like driving a basic sedan. They get you where you need to go, and meet your basic needs. Where PCs are like a sports car, you can customize them anyway you want and they offer sheer power along with a more enjoyable experience.
Thrive is one of the games like Spore that is still in the works and plenty of distance to go before completion. It's an open source project so it's a game that will probably take some time to reach a final stage of completion but I do feel very much like it will be worth the wait in the end. TERA is one of the newer MMORPGs to be featured on this list, making it a perfect option for those MMO fans who love to get into a game early and become a powerful player before it becomes saturated. Global warming unites people with a common threat like the UFO scares in the 50s and 60s brought communists and capitalists together in study. Unless there is something else he isn't getting done that he had planned to do, I don't see why playing video games is so terrible. People can become addicted to games but if that isn't the case I don't think video games are better or worse than most hobbies. It's a common occurrence for neighbours to disappear in new applications. First of all clear your cache and then leave a message on the forums or with support. It seems to effect players and computers at random and you may have to wait several days for it to be corrected. The game also offers three different game-plays. 'Odyssey' is the main part which is considered to be the story mode of the game. 'Arcade', unlocked after some progress in Odyssey, contains the puzzles you encountered in the Odyssey that you might want to play again. And finally, 'Multiplayer', which lets you compete with other people online or through the use of a WiFi connection or a hotspot. Carrying on with the tradition set by the last sixth-generation console TMNT game, Battle Nexus is based around the 2003 animated series, and follows story-lines set by episodes from the show's second season. It is aesthetically similar to its predecessor, but has a few gameplay tricks up its sleeve. The most notable addition is the ability to play as all four Turtles simultaneously, which makes perfect sense considering the technical abilities of sixth-generation hardware. Battle Nexus takes the whole four-player shtick and makes the game a communal effort with the inclusion of team-based gameplay and a shared health bar, which meant that players has to look out for one another in order to stay alive. Single player mode allows players to control any of the four Turtles, and players can switch characters on the fly. Ana Gutierrez Garza, Director of the Centre for Amerindian and Latin American Studies (CAS) at the University of St Andrews, said: "This research brings to light the obstacles that people in Peru had to overcome in order to survive during COVID-19 times.
Tags: vaccination
Previous Breaking Ice for the Holiday in World of Warships: Legends
Next SPONSORED: Oculus Quest 2 Annihilates Cabin Fever
Scott Pilgrim vs. The World: The Game – Complete Edition Arrives on Xbox One and Xbox Series X|S


This is a 12-minute excerpt from a 75-minute presentation given at the 2014 International UFO Congress in Arizona. Standing on stage in front of hundreds of people sharing my experiences was a big deal for me. The UFO conference scene can be it's own closed little world, and it felt good to put forth some ideas that went well beyond the nuts and bolts mindset of the core group of attendees. This talk seemed to be well received and it felt good to reach this audience.
The core of this talk comes from a long format essay (of the same name) linked HERE.
There may be a point in the future when the whole presentation will be posted online. For now, the conference organizers have requested just this short edited excerpt.
as a "kickass presentation" by Red Pill Junkie.
This presentation (along with a lot of others) can be purchased as a DVD at the IUFOC on-line site.
Mike Clelland began his study of the UFO abduction phenomenon in 2006 as a way to better understand his own personal experiences. This act of looking unleashed a flood of synchronicities as well as intense owl sightings. These events have been the focus of his ongoing research. Both owls and profound synchronicities seem to play a guiding role in the direct experience of some abductees, this connection points to a deeper reality at play in these mysteries. By looking at these elusive and often ignored aspects of the abduction lore, something truly mystical seems to be revealing itself.
also: Here is a similar talk in it's full lenght, a total of an hour and 45 minutes. I spoke at a small conference in Leeds England, hosted by the Exopolitics Great Britain Lecture series. A video is linked HERE.
Excellent job Mike, you would never know that was your first presentation!
Obviously you do have the courage to live it!
Bravo Mike! I love your courage, tenacity and insights when it comes to this phenomenon. I feel with your blog, research and now, this presentation that you are bringing some much needed new perspective to the field of Ufology. It is past time of thinking of this subject as something that can be put in a "one size fits all" mentality. I agree that something much bigger is going on then just the classic "nuts and bolts" saucer events….and I think we are just now scratching the surface of our knowledge of what UFO really means. Thank you for all your efforts and honesty in bringing the messages you are receiving to us all.
What can I say? There's too much! You reach out and relate to so many of us- and help- actually help- us feel more OK about all this stuff!! You even ease it into the mystical, so a renewed hope washes over what were initially primarily fears. Thank you for such subtle yet important shifts in perceptions.
Your talk is amazing- exactly as I knew it would be. Thank You for your courage.
This is a truly mind blowing talk, and you deliver it with such articulate clear diction it is a pleasure to listen to.
9/11 AS MASS RITUAL - S.K.Bain. And their goal is a globalized corporate fascism, and having us willing to introduce into our bodies technology which will hook us up and make us even more dependent on their matrix.
Now, if you Google 'Illuminati Bohemian Grove' at Google images you will see pictures of undercover pictures taken at one of the rituals which the power mongers (this is for real) in point hat KKK-like costumes perform their ritual in front of a HUGE statue of an OWL they call Molech!!! Further, this Illuminati use the symbol of an owl to mean 'seeing in the dark' but in a very malicious way. THEY belong to secret societies and think that us lot, 'the people/masses', are the 'great unwashed', profane, non-people, savages, irrational small minded people who don't know what is going on, and are not as evolved as they think they are--as even 'gods'. But THEY can swoop down on us at anytime, like an owl can on its prey in the night when it is unawares for the kill. Look on the one dollar bill, not only do you have their pyramid Illuminati symbolism with its 'all seeing eye' (meaning themselves. Lucifer), but also there is a tiny image of an owl. You will see this is you do a Google image search. So I am telling you this, because it will be important for your information. These people appropriate and expropriate benign mythological symbolism and twist it toward their own toxic worldview and intentions. It is extremely important to become aware of this enemy in control of this world, because they are using mind control and depend on us being unaware. Becoming aware undermines their mind control.
By the way, listening to your talk reminded me that growing up, outside my bedroom were ancient woods and at night I would hear an owl calling from these woods. I was to have two OBEs when I was sleeping with my head pointing in the direction of these woods, North. Both were completely life-changing, and the second one was incredibly so, and still I am exploring its unfolding riddle. I met entities/spirits/faeries. Two had human masks of people close to me, and when they took them off they looked like Satyrs!!
I had this feeling... I should not wait until this evening. I was right.
Happily, I got to watch the presentation. It will be worth the wait to anyone who missed it.
The 11:11 wa totally accidental. I noticed it my self after it was folded into the presentation.
I am thankful I saw your talk when I did then. I am not understanding why they wanted you to take it down?
Anyway, main point I am commenting again. I had just opened a video called The Hunt for Wild Magic Mushrooms about two minutes ago. The advert which is at beginning has a large WHITE OWL suddenly appearing in your face!! And then when I paused the video in the main programme when it should have been well passed the advert, the OWL suddenly flashed on screen again!
So how many people attended the presentation, Mike? Was there a Q&A afterwards?
One of the threads in the subject matter is the history of animism as well as the research into consciousness and intelligence in non human species, which has become recognized which could be thought upon as an inadvertent evolution of animism where science meets metaphysics.
Then there is the research into global consciousness fields as conducted by Princeton University, which then one could perhaps ask if there exists non human fields within nature folded into a spectrum which includes our own.
I do think there may be a feedback loop in all this that is the subject of quantum mechanics of anticipation in relation to results as a form of attuning probability. One could ask on what side intention falls or as an alternative, the intent of human consciousness is folded onto other fields and vice versa.
All of this relates to the aggregate sum of planetary \ global consciousness being greater than it's constituent stations as a network. I am reminded that it was Gregory Bateson who said nature works in one way and we think in another.
Your talk was if anything..provocative.


This focuses on the history, costume, and material culture of the native peoples of North America. It was in the Southwest - modern Arizona, New Mexico, and parts of California and other neighboring states - that the first major clashes took place between 16th-century Spanish conquistadors and the indigenous peoples of North America. This history of contact, conflict, and coexistence with first the Spanish, then their Mexican settlers, and finally the Americans, gives a special flavor to the region. Despite nearly 500 years of white settlement and pressure, the traditional cultures of the peoples of the Southwest survive today more strongly than in any other region. The best-known clashes between the whites and the Indians of this region are the series of Apache wars, particularly between the early 1860s and the late 1880s. However, there were other important regional campaigns over the centuries - for example, Coronado's battle against the Zuni at Hawikuh in 1540, during his search for the legendary "Seven Cities of Cibola"; the Pueblo Revolt of 1680; and the Taos Revolt of 1847 - and warriors of all of these are described and illustrated in this book.
Michael G. Johnson has researched Native American history and culture for more than 35 years. He has written a number of books on the subject in the Men-at-Arms series, including Men-at-Arms 344: Tribes of the Sioux Nation. In July 2000 he was presented with The Denali Press Award by the American Library Association, for his Macmillan Encyclopedia of Native American Tribes. He has contributed to exhibitions for the Arts Council of Great Britain and the American Museum in Bath, UK, and has visited more than 30 Indian communities and reservations.


Molecular clouds exhibit a hierarchical density structure with stars forming in their densest regions. Often, these star-forming complexes have an elongated, filamentary shape. Star formation occurs primarily in these GMCs, but is usually restricted to a small fraction of the volume of a GMC, as most stars form in or near relatively small clusters. This would seem to suggest that the processes setting the Galactic star formation rate are those that generate and/or destruct the dense clumps within GMCs. In contrast, the observationally inferred Kennicutt relation implies that the rate depends on a large-scale average of the column density of interstellar gas, which points to the importance of processes acting on scales larger than GMCs in regulating the Galactic rate. The star formation rate is thus closely linked to the dynamics of the interstellar medium (ISM) and thus directly regulated by processes like gravitational, thermal and magnetohydrodynamical instabilities and stellar feedback. Using numerical simulations I study the formation and evolution of GMCs in isolation and within the context of galaxies.
I study the dynamics of shock waves in magnetised and dusty plasmas. These models are relevant to the study of the outflows near young stellar objects. We have developed a time- dependent multiuid MHD code to calculate the structure of steady perpendicular and oblique C-type shocks in dusty plasmas. These models are the first of oblique fast-mode molecular shocks in which a rigorous treatment of the dust dynamics has been combined with a self-consistent calculation of the thermal and ionisation structures including appropriate microphysics. A time-dependent method is not only robust for finding steady state shock structures. It is also vital for modelling transient phenomena such as the interaction of a shock with a dense clump in a molecular cloud. Recently, we included grain sputtering in oblique C-type shocks to model the release of Silicon in the gas phase in order to compare with observations. Currently, I am working on 2D and 3D models of C-type shocks.


[Friday] was rocky. The first day of our VIP demo weekend did not go exactly as we planned, and I want to share what happened. We've been testing the entire game and platform for several months, but there were a few things we missed; real-world play frequently leads to unexpected issues. Before I share details on this and what we're still facing, I want to dispel one comment we've seen: that we under-planned for server capacity. To ensure stability, we intended to manage our servers to match the player population as it grew. Overall, we had excess capacity prepared for population increases, and continue to do so. That said, what's important is that all parts of the game work as designed to meet players' needs, and that did not happen in the opening hours.
In case the terminology is throwing you for a loop, the "VIP demo" for Anthem was only open this weekend to folks who pre-ordered the game or were a member of EA Access or Origin Access. That velvet rope was actually pulled aside quite a bit more than that, as VIP participants were granted three codes to give to friends. Also, literally hundreds of additional codes were passed out from various websites, influencers and the like throughout the weekend.
In other words, and as reiterated in the recent update from Robertson, the teams at EA and BioWare were well aware of the fact that this was going to be a massive demo and were prepared for exactly that.
But when everything came tumbling down the moment the demo launched, the natural assumption from many folks was that the servers simply were not prepared for the number of people who were trying to play the game all at once. Robertson reiterates that was not the case, but rather some unanticipated problems popped up and started causing problems this weekend. These are exactly the kinds of issues betas and demos are meant to uncover so, hopefully, things will run more smoothly in the future.
Also worth pointing out is how prompt and open this response was. In instances such as what we saw in Anthem this weekend, it's not uncommon for a developer to simply tweet that they are aware of some issues and working to fix them. BioWare went a step further to give players a better idea of what went wrong, and that openness typically goes a long way toward creating some goodwill within an online community.
On top of the initial platform connection issues, probably the biggest gripe this weekend concerned infinite loads within the game. As of this writing, I've probably only played a grand total of two hours of the demo (not from lack of trying) due to this issue. Basically, at any point in the demo you are greeted with a load screen, there's a chance you will just be stuck there indefinitely. The only option after that is to reboot the game and pretty much start whatever you were doing from scratch.
According to the update, BioWare is working on these issues and might have some of them addressed before the VIP party ends this weekend. Otherwise, the aim is to have fixes ready to roll by next weekend, which is when the Anthem demo will be open to everyone. After that, the team will only have a few weeks left to get ready for the Feb. 22 launch.


text:
Schmuck.Null
Schmuck.ff
Sometimes it seems to me, that breaking news and news ticker have replaced the longing for wisdom. I don't believe we will get far with this.
The Eusebius Church in Arnhem has been almost totally destroyed during the 2nd World War.
It was rebuild and is now, besides the religious use, a memorial and a tourist attraction.
I've been there a few month ago, and was deeply touched by the so called "Eusebius Experience" (a historical multimedia guide).
I mean, I knew the historical facts of the destruction of Arnhem, and always regarded it as a thing that should have never happend, because a war should naturally never happen, because of the perversion especially WW2 was made of, but after this I really felt ashamed and guilty.
Although I always said you can't be guity for something you've never been part of, because one wasn't even born, because one's parents weren't even born, that you can only fight racism nowadays, and you have to fight racism nowadays, but you can't change the past.
Nevertheless, the feeling was there, and the feeling was right.
So when I picked up a copper coloured piece of glass in the main part of the church, I knew there may be no reference to the building or to the history, maybe some visitor just lost it, but I knew I would give it a special place in my designs.
I wanted to give it a poetical, magical touch, make it look like a kind of relic, strong but not lacking signs of destruction.
Never to forget the cruelty of war.
It took some time, finding the right name for this brooch, and now, having found
it, I wish I could have called it differently.
Let me tell you why.
I was searching the internet for what sort of a stone I once picked up, having gone for a walk on a spoil tip, and now placed it in the middle of my design.
I learned it is slag, which doesn't surprise me much as I live in the Ruhr area.
But I also read it can be toxic and weakly radioactive- not funny at all.
So what to do with it now? I don't know if I am overcautious, as our spoil tips consist of any kind of mining waste material- just as slag- but I'm no longer comfortable with the thought of wearing the brooch, at least until a geologist tells me it's okay.
I don't go to church. But I was raised catholic and agree with christian values, spreading love and being kind to each other could really make mankind appear civilized. But that's not what church as an institution does. There's still fight for power, abuse, disrespect and pain.
The here and now isn't helped by praying the rosary and washing the sins away.
Crucifix_2021 comes with a picture frame hook on the back, so you can either hang it on your wall or wear it around the neck with a waxed cotton cord.
This one is made of a shampoo bottle, found pieces fixed on it with found sparkler wire, and meant to be read in a critical way of dealing with overconsumption. I got a comment on insta saying that it looks like a memory jug, and indeed, it does. But it's rather a memorial for consumption in the whole, due to the mass we buy, the single pieces lose their value, and we lose them from memory.
Lesbian, gay, bisexual, transgender, queer or questioning, intersex, asexual and ally people deserve the same respect as everyone does, as they are a natural part of the "everyone"-group, which is nothing less than humanity.
I guess here is a good occasion for pointing out, because- I don't know why- after having finished the brooch I couldn't stop seeing a penis in it.
I mean, i like penises, but this isn't meant to be a victory-for-penis-brooch!
As it happend by chance let me tell you I'm not planning to build a vagina next.
But, we'll see ;)
Tilting elements, related to tipping points in the climate system, provoce, when exceeded, a huge change in the climate system, often irreversible.
This change threatens our livelihood now, and it is getting exponentially worse.
Dinosaurs have not died out by climate change, but we will, if we go on like this.
Refering to Pink Floyd's shine on you crazy diamond, I want to dedicate this to all animals, especially to those we treat in the most brutal and unhuman way.
Mind the pigs, mind all animals, they are living, thinking and feeling creatures.
Shine on you crazy ones, you know who you are!
This humblebee has fed up with glyphosate & co., so it's escaping to space to find a better place to live.
I really don't know if green hydrogen will be the energy for a healthier future, but obviosly we need to find some. Even if we reduce our power consumption, we can't completly do without. (Of if so, this would be the greatest revolution ever.)
Christine Klomfaß
Huyssenstr. 2
info@christineklomfass.de


FINALLY… THE BEST OPTION FOR REPLACING YOUR CEDAR ROOF!
Imagine a Roof That Lasted a Lifetime in Our Harsh Calgarian Climate.
If that's something you're looking for, Metstar stone-coated metal roofing is the solution. It combines all the advantages of metal roofing, such as longevity and durability, with the benefits of stone roofing, like insulation and noise reduction.
Metstar backs their roofing with a lifetime warranty.
A Metstar Roof Eliminates Hail Damange… Forever!
The incredible durability of Metstar's stone coated roof is hard to overstate.
Calgary is known for extreme teperatures, ample hail, powerful winds, and unpredictable weather. Your Metstar roof will shrug it all off and weather the storm just fine.
Metstar Backs Their Roof With a Lifetime Warranty.
Read their Canadian warranty here.
Compared to other options available to Calgarians, Metstar Roofing is more affordable. During this uncertain economical climate, homeowners are able to have a great product without breaking the bank!
Removing your current roof comes with grave impacts on our environment. The removed shingles and shakes end up in our landfills. We are able to install Metstar over most roofs, as long as there are no signs of rotten wood. We can evaluate your home and instruct on the best options for your roof.
The concern of metal roofing with most homeowners in Calgary is the weight of the materials. We have heard from several customers that they are worried the materials will be too heavy for the infrastructure of their homes. Metstar is typically 1/3 the weight of any of the other material similar in the market.
Neither Stone Nor Metal Roofing Are New. They've just been perfected.
Metal roofing is nothing new. it has been around for decades. Unfortunately, its shortcomings are also well known: noise, cost, and poor insulation.
Stone roofing is similar in that it, too, has ample history. It is used less in Calgary due to cost and difficulty of application, but it is still seen on many homes all over the city.
Stone coated roofing from Metstar enjoys the benefits from both worlds: (comparative) ease of installation, ample ventilation and insulation, and unsurpassed durability and longevity.
Metstar's corporate objective is to offer a stone coated steel roofing product with a lifetime durability and longevity at a cost comparable to asphalt shingles.
Metstar's F-Series line of roofing materials follow traditional steel roofing installation processes. The F-Series line of roofing materials are well known for their toughness and aesthetic value.
The M-Series line of roofing materials offer an innovative installation system, making it easier to properly install via an interlocking installation system (like lego for your roof).
We travel all over the grater Calgary area installing new roof systems, such as the Metstar stone coated roof. We have developed a proficient roofing installation process that results in consistently excellent and trouble-free installations.
We would love a chance to work with you on your roofing project.
Learn more about why you should work with us.


text:
Rodney Celvin Akwensivie (* 25. November 1996 in Serian, Malaysia) ist ein ghanaisch-malaysischer Fußballspieler.

Karriere
Rodney Celvin stand von 2016 bis 2017 beim Sarawak FA unter Vertrag. Der Verein aus dem Bundesstaat Sarawak spielte in der ersten malaysischen Liga, der Malaysia Super League. Ende 2017 musste der Verein als Tabellenelfter in die zweite Liga absteigen. Für Sarawak absolvierte er 12 Erstligaspiele. Nach dem Abstieg verließ er den Verein und schloss sich dem Erstligisten PKNS FC aus Petaling Jaya an. Hier unterschrieb er einen Zweijahresvertrag. Für PKNS stand er 34-mal in der ersten Liga auf den Spielfeld. Die Saison 2020 lief er für den ebenfalls in der ersten Liga spielenden Selangor FC auf. Hier bestritt acht Ligaspiele. Im Januar 2021 unterzeichnete er einen Vertrag beim Erstligisten Kedah Darul Aman FC.

Weblinks

Fußballspieler (PKNS FC)
Fußballspieler (Selangor FA)
Fußballspieler (Kedah Darul Aman FC)
Ghanaer
Malaysier
Geboren 1996
Mann

redpajama_set_name: RedPajamaWikipedia


R&D-Chlorinated Polyethylene|CPE|Acrylic Processing Aid|AIP|Acrylic Impact Modifier|AIM|Impact Modifier|ADC blowing agent|Chlorinated Polyvinyl Chloride|CPVC|Polychloroprene Rubbe|Chloroprene Rubber|Neoprene |Chlorinated Rubber|Thermoplastic Polyurethane Resin|TPU)|High Chlorinated Polyethylene |HCPE|Chlorosulfonated Polyethylene|CSM-Acrylic Processing Aid, Chlorinated Polyethylene - Sundow Polymers Co.,Ltd.
The company benefits from the strong development power brought by R&D and innovation, and will always pay attention to the development direction of customers' products and technologies, anticipate the market trend of products, keep up with the market, make full use of the advantages of R&D, and constantly introduce new products and new models to maintain the company's sustainable development.
With the core team composed of doctors and masters, senior professional technicians and energetic members, Sundow has strong R&D experience and capabilities from project initiation - development trials - analytical testing - product application and has customized about 100 product models for different users. Sundow built long-term cooperation with several independent laboratories, universities and research institutes to assist the company's product development and innovation.
Technical center is well-equipped to analyze and test all items from raw materials to finished products, such as mechanical properties, rheological properties, mooney viscosity, elemental chemical analysis, DSC, MFR, PH, ash, hardness, tear strength, thermal stability, rubber aging properties, rubber vulcanization properties, etc.
Sundow owns a specialized set of trial production equipment, which can be used to simulate the production process for the development and innovation of new products and new models, including downstream production processes such as extrusion, injection and vulcanization. It ensures the flexibility, efficiency and low cost of R&D. At the same time, it also has a better understanding of downstream applications, which is convenient for guiding customers' use and improvement.
A. Hydrochloric acid phase method to produce high quality environmentally friendly CPVC resin.
B. New production process to produce environmentally friendly CSM.
C. Development of new CPE modifiers.