text:
import React, { PureComponent } from 'react';
import { Modal, ModalBody, TextInput, Button } from 'ui-kit';
import { form } from '@client/hoc';
import userActions from '@client/actions/users';
import { connect } from 'react-redux';
import { flowRight } from 'lodash';
import { createStructuredSelector } from 'reselect';
import { getQuery } from '@client/selectors/router';

class SignupUsername extends PureComponent {
  render() {
    const { fields, actions } = this.props;
    return (
      <Modal isOpen={this.props.createUsername} title="Create Username">
        <ModalBody>
          <TextInput type="text" {...fields.get('username').toObject()} />
          <Button {...actions.submit} />
        </ModalBody>
      </Modal>
    );
  }
}

const fieldsSelector = props => ({
  username: {
    label: 'Username (public)',
    verify: [
      'required',
      'pattern:[a-z0-9 -]+:^Username can only contain alphanumeric characters:i',
    ],
    onChange: props.onUsernameChange,
  },
});

const actionsSelector = props => ({
  submit: props.submit,
});

const configSelector = () => ({
  isValid: false,
  interact: {
    context: 'SIGNUP',
  },
});

const mapDispatchToProps = (dispatch: $$dispatch, { id, token }: Object) => ({
  submit: ({ username }) =>
    dispatch(userActions.createUsername(id, token, username)),
  onUsernameChange: ({ value }) => userActions.checkUsername(value),
});

const mapStateToProps = createStructuredSelector({
  id: getQuery('id'),
  token: getQuery('token'),
  createUsername: getQuery('createUsername'),
});

export default flowRight([
  connect(mapStateToProps),
  connect(null, mapDispatchToProps),
  form(fieldsSelector, actionsSelector, configSelector),
])(SignupUsername);


text:
Richie Sambora Interview
The Fierce And The Dead – Spooky Action
Interview: Tom G. Warrior Talks To ThisIsNotAScene
EP Reviews
Download 2018 Reviews
Bloodstock 2014 Reviews
Sonisphere
Sonisphere 2014 Reviews
Damnation 2014 Reviews
Tim Bertilsson Of Switchblade Talks To ThisIsNotAScene
Posted by TINAS Guest Writer | Feb 6, 2013 | Interviews, Music | 0 |
Interview by Tom Saunders.
Tom Saunders was pretty impressed with Switchblade's [2012] album. Drummer Tim Bertilsson was more than happy to share his insights on the record. He also discussed playing on the prestigious Roadburn Festival, the band's influences and the rise in prominence of doom metal in general.
First, how did you settle on the name Switchblade? When I sat down to listen to your most recent album, I was expecting hardcore or crust, not skull-crushing doom!
Well, it was a band name I had in my head for quite some time before starting the band and I wanted to use it for the next band I was in, no matter what type of music. I like band names that are not that obvious. There are a lot of bands where you more or less can describe their "sound" with just hearing the band name.
I didn't realise how long you'd been around. Since forming, what do you think has been your proudest moment?
Yeah, we've been around for about 15 years now. There are quite a lot of moments that we are proud of in one way or another. It's hard to name just one moment but the Swedish Grammy Award nomination we received today is something special of course.
Is there anything you'd still like to achieve as a band?
Of course. Otherwise there would be no use to continue doing the band.
Where do you draw your influences from? To my ears, you sound like an incredibly dark version of YOB. Do you draw any influence from bands outside of the doom metal genre?
I think that we draw more influences from bands outside of the doom metal genre than anything else. There is quite a lot of early 70´s prog/heavy rock and death metal influences on the new album though it might not sound like it. There is a big difference in being influenced by something and to copy a certain sound or approach.
What are the songs on [2012] about? The song titles ('Movement I', 'II' and 'III' respectively) don't give away much!
The lyrics are a passage from the book "Maldoror" by Lautréamont (1868). You will have to read the book yourself to get the whole picture.
I see you're lucky enough to be playing Roadburn festival this year. Have you played before? Are there any bands there you'll want to watch yourself?
Yeah, we're really happy that we'll be playing Roadburn 2013. It's something that we have wanted to do for quite a few years now. We have not played the festival before but we did play the Roadburn pre-sales party in Tilburg a few months ago. There a quite a few bands that I look forward to seeing like Nihill, The Ruins of Beverast, My Brother The Wind, High On Fire playing "The Art Of Self Defense" and so on. I'll be there for all four days so there's a lot of bands to check out.
From what I gather, your early releases were pressed on vinyl, your first release being a 7". Is vinyl still your preferred format? What do you think has caused the apparent resurgence of interest in vinyl recently?
Yes, I am a big fan of vinyl but I think that CDs and digital files are a good compliment since it's pretty hard to carry around a vinyl turntable and listen to music on your way to work and so on. With the right equipment, the sound of a vinyl record is superior to CD or digital files. I think that the vinyl is on a steady rise again because the value of an LP rarely drops, rather rises over time whereas a CD is something that people have no respect for when it comes to handling it. And the artwork size and packaging of vinyl is of course superior as well. People want to have something to hold on to and not just a digital file.
Continuing with the vinyl theme, if you could release a split with any band, who would it be and why?
Hmm, good question. There are lots of bands that would be great to do a split with but I'll keep it reasonable and say Eagle Twin who are one of my favourite bands.
Doom also seems to have enjoyed a resurgence lately, 2012 has been saturated with quality releases from all over the doom spectrum. Have you noticed an increased interest in your music in recent years?
Not really, to be honest. The interest and feedback for our latest album has been better than ever but I think that has more to do with the album being our best material ever rather than an increased interest in the genre as a whole.
Having been around for a while, do you have any opinions on the recent horde of bands reuniting? Have you ever come close to breaking up yourself?
I don't mind reunions as long as they're done for the right reason and done the right way. It's a great chance for people to see great bands who they didn't manage to see while the bands were active the first time around. No, we have never been close to breaking up. We love what we do and we do it at our pace.
Switchblade – Facebook Page
PreviousEvil Shepherd – Evil Through Darkness… And Darkness Through Death
NextSilent Leges Inter Arma – Silent Leges Inter Arma
Refused – War Music
By Ben Timpson
Killswitch Engage – Atonement
Jimmy Eat World – Surviving
Nocturnus A.D. – Paradox
By Mark Steele
Whitechapel – The Valley
Do You Remember? Play Dead
DEMONS & WIZARDS Launch "The Gunslinger (Live At Wacken 2019)"
GRAYSCALE Release New music video for Song 'Baby Blue'
INSOMNIUM release video for new single "Valediction"
DRAGONFORCE Premiere New Arcade Game Retro Video For "Heart Demolition"
IN MOURNING premiere music video for new track "Black Storm"
Interview with Fernando Ribeiro of Moonspell
Evil Blizzard Talks To ThisIsNotAScene
Aaron Stainthorpe of My Dying Bride Chats To TINAS
Harriet Bevan & Dave Vachon Of Black Moth Talk To ThisIsNotAScene
King Giant talks to TINAS
© 2010-2021 ThisIsNotAScene

redpajama_set_name: RedPajamaCommonCrawl


Abstract: Superconducting quantum interference devices (SQUIDs) are used for applications ranging from sensitive magnetometers to low-temperature electronics and quantum computation. We introduce a planar nano SQUID that was made with a single lithographic step out of NbN films as thin as 3 nm on a Si chip. The fabrication process of weak links that are 45 nm in width, and 165 nm in length, which were designed to account for overcoming current crowding are presented. Operation at a temperature range of 20 mK to 5 K as well as at 1 T parallel, and 10 mT perpendicular magnetic fields is demonstrated, while potential operation higher than 8 T has also been shown. The broad range of applicability of a single device as well as its scalability are promising for on-chip integrability that may open new technological possibilities, including in quantum and electro-optical circuiting.


REDUCED! 620FS WT/ 250 Mercury VERADO PRO, 9.9 KICKER LOADED!
2018 Ranger REDUCED! 620FS WT/ 250 Mercury VERADO PRO, 9.9 KICKER LOADED!
Step into the future with the advanced total performance design of the 620FS. The extraordinary superstructure is built to iron out rough water and track solid in windy conditions. The interior is chock-full of standard features and innovative additions. From our exclusive pultruded fiberglass transom to the patented Power Ventilated Rod Storage™ system, this multi-species dream rig is Built To Be Yours®. With an even larger beam, the cockpit is highlighted by a cushioned, skid-resistant floor for easy clean up and quick drying capabilities. With even more custom details like our SRS Soft Ride Seating®, a Minn Kota® iPilot trolling motor, Lowrance® electronics, digital switching, oversized livewell with rigging tray, an on-board charger, tool holders, multiple slide-out tackle trays, and recessed keel protector, this is the total performance focus of the 620FS Fisherman Series... It's the kind of feature-packed muscle that gives you the confidence to unload and Take It Out On The Water™!
Hull Length: 20 ft. 5 in.
Total Persons, Motor, Gear: 2000 lbs.
Approx. Length on Trailer w/Motor Down***: 25 ft. 3 in.
Approx. Length on Trailer w/Swing Away Tongue Open***: 23 ft. 3 in.


Tomgandhi Consulting GmbH holds an established relationship with the German Tax Authority. This is the only compliant way for contractors and freelancers to work in Germany, ensuring that the local tax authorities are happy with your presence. More importantly, it allows you to gain the best possible retention rate, despite your circumstances and requirements.
Tomgandhi Consulting GmbH is registered with the German Tax Authorities and Social insurances.
From a tax perspective, Tomgandhi Consulting GmbH is situated in Germany. This allows Tomgandhi Consulting GmbH to achieve the minimum substance required to qualify for treaty benefits along with the ability to offer a German address, regular bookkeeping services and ongoing legal support for freelancers and contractors.


Would you trust your loved ones to know your wishes for your funeral and burial? In many cases, family members do not have a clear sense of what you may want. If you do not Write Down Your Funeral Plans for your funeral when creating your estate plan, California law dictates the order of priority of people who are entitled to make those decisions on your behalf. You may find that the person you would prefer to be in charge is not the same person who is granted that authority under the law. Fortunately, you can avoid potential misunderstandings by taking time to write down your funeral plans in advance.
Why should you consider writing down your funeral plans? Writing these plans down increases the likelihood that you will be given a funeral that is in line with your wishes. It also removes the stress that is placed on your loved ones when they are tasked with making these choices. After your death, your loved ones will already be facing a stressful time. Writing down your funeral wishes can help to minimize that strain.
Are the instructions clear, complete, and unambiguous?
Have you made payment arrangements in advance?
Have you set aside sufficient funds to cover your funeral plans?
Was this information about planning for your funeral arrangements while creating your estate plan helpful? If so, we encourage you to share it with your friends and family on Facebook! A loved one may be in the process of creating an estate plan while overlooking the importance of making funeral arrangements in advance.
Are Basic Wills Sufficient for Blended Families in California?


I am looking for an Adduino user that can give a demonstration / short talk about using the micro controllers to a group.
I thought we were a Commonwealth?
Post the date you have in mind Mark.
Meetings are the first Monday of the month, it looks as if it would be November or after the first of the year at this point.
I work in Bedford, that'd be a miserable drive after work.
Try PM to JohnWasser, or cyclegadget, I think they are farther southeast.


text:
package runtime_test

import (
	"bytes"
	"context"
	"fmt"
	"net/http"
	"net/http/httptest"
	"net/url"
	"strconv"
	"strings"
	"testing"

	"github.com/grpc-ecosystem/grpc-gateway/v2/runtime"
	"github.com/grpc-ecosystem/grpc-gateway/v2/utilities"
	"google.golang.org/grpc"
	"google.golang.org/grpc/codes"
	"google.golang.org/grpc/health/grpc_health_v1"
	"google.golang.org/grpc/status"
)

func TestMuxServeHTTP(t *testing.T) {
	type stubPattern struct {
		method string
		ops    []int
		pool   []string
		verb   string
	}
	for i, spec := range []struct {
		patterns []stubPattern

		reqMethod string
		reqPath   string
		headers   map[string]string

		respStatus  int
		respContent string

		disablePathLengthFallback bool
		unescapingMode            runtime.UnescapingMode
	}{
		{
			patterns:   nil,
			reqMethod:  "GET",
			reqPath:    "/",
			respStatus: http.StatusNotFound,
		},
		{
			patterns: []stubPattern{
				{
					method: "GET",
					ops:    []int{int(utilities.OpLitPush), 0},
					pool:   []string{"foo"},
				},
			},
			reqMethod:   "GET",
			reqPath:     "/foo",
			respStatus:  http.StatusOK,
			respContent: "GET /foo",
		},
		{
			patterns: []stubPattern{
				{
					method: "GET",
					ops:    []int{int(utilities.OpLitPush), 0},
					pool:   []string{"foo"},
				},
			},
			reqMethod:  "GET",
			reqPath:    "/bar",
			respStatus: http.StatusNotFound,
		},
		{
			patterns: []stubPattern{
				{
					method: "GET",
					ops:    []int{int(utilities.OpPush), 0},
				},
				{
					method: "GET",
					ops:    []int{int(utilities.OpLitPush), 0},
					pool:   []string{"foo"},
				},
			},
			reqMethod:   "GET",
			reqPath:     "/foo",
			respStatus:  http.StatusOK,
			respContent: "GET /foo",
		},
		{
			patterns: []stubPattern{
				{
					method: "GET",
					ops:    []int{int(utilities.OpLitPush), 0},
					pool:   []string{"foo"},
				},
				{
					method: "POST",
					ops:    []int{int(utilities.OpLitPush), 0},
					pool:   []string{"foo"},
				},
			},
			reqMethod:   "POST",
			reqPath:     "/foo",
			respStatus:  http.StatusOK,
			respContent: "POST /foo",
		},
		{
			patterns: []stubPattern{
				{
					method: "GET",
					ops:    []int{int(utilities.OpLitPush), 0},
					pool:   []string{"foo"},
				},
			},
			reqMethod:  "DELETE",
			reqPath:    "/foo",
			respStatus: http.StatusNotImplemented,
		},
		{
			patterns: []stubPattern{
				{
					method: "GET",
					ops:    []int{int(utilities.OpLitPush), 0},
					pool:   []string{"foo"},
				},
			},
			reqMethod: "POST",
			reqPath:   "/foo",
			headers: map[string]string{
				"Content-Type": "application/x-www-form-urlencoded",
			},
			respStatus:  http.StatusOK,
			respContent: "GET /foo",
		},
		{
			patterns: []stubPattern{
				{
					method: "GET",
					ops:    []int{int(utilities.OpLitPush), 0},
					pool:   []string{"foo"},
				},
			},
			reqMethod: "POST",
			reqPath:   "/foo",
			headers: map[string]string{
				"Content-Type": "application/x-www-form-urlencoded",
			},
			respStatus:                http.StatusNotImplemented,
			disablePathLengthFallback: true,
		},
		{
			patterns: []stubPattern{
				{
					method: "GET",
					ops:    []int{int(utilities.OpLitPush), 0},
					pool:   []string{"foo"},
				},
				{
					method: "POST",
					ops:    []int{int(utilities.OpLitPush), 0},
					pool:   []string{"foo"},
				},
			},
			reqMethod: "POST",
			reqPath:   "/foo",
			headers: map[string]string{
				"Content-Type": "application/x-www-form-urlencoded",
			},
			respStatus:                http.StatusOK,
			respContent:               "POST /foo",
			disablePathLengthFallback: true,
		},
		{
			patterns: []stubPattern{
				{
					method: "GET",
					ops:    []int{int(utilities.OpLitPush), 0},
					pool:   []string{"foo"},
				},
				{
					method: "POST",
					ops:    []int{int(utilities.OpLitPush), 0},
					pool:   []string{"foo"},
				},
			},
			reqMethod: "POST",
			reqPath:   "/foo",
			headers: map[string]string{
				"Content-Type":           "application/x-www-form-urlencoded",
				"X-HTTP-Method-Override": "GET",
			},
			respStatus:  http.StatusOK,
			respContent: "GET /foo",
		},
		{
			patterns: []stubPattern{
				{
					method: "GET",
					ops:    []int{int(utilities.OpLitPush), 0},
					pool:   []string{"foo"},
				},
			},
			reqMethod: "POST",
			reqPath:   "/foo",
			headers: map[string]string{
				"Content-Type": "application/json",
			},
			respStatus: http.StatusNotImplemented,
		},
		{
			patterns: []stubPattern{
				{
					method: "POST",
					ops:    []int{int(utilities.OpLitPush), 0},
					pool:   []string{"foo"},
					verb:   "bar",
				},
			},
			reqMethod: "POST",
			reqPath:   "/foo:bar",
			headers: map[string]string{
				"Content-Type": "application/json",
			},
			respStatus:  http.StatusOK,
			respContent: "POST /foo:bar",
		},
		{
			patterns: []stubPattern{
				{
					method: "GET",
					ops:    []int{int(utilities.OpLitPush), 0, int(utilities.OpPush), 0, int(utilities.OpConcatN), 1, int(utilities.OpCapture), 1},
					pool:   []string{"foo", "id"},
				},
				{
					method: "GET",
					ops:    []int{int(utilities.OpLitPush), 0, int(utilities.OpPush), 0, int(utilities.OpConcatN), 1, int(utilities.OpCapture), 1},
					pool:   []string{"foo", "id"},
					verb:   "verb",
				},
			},
			reqMethod: "GET",
			reqPath:   "/foo/bar:verb",
			headers: map[string]string{
				"Content-Type": "application/json",
			},
			respStatus:  http.StatusOK,
			respContent: "GET /foo/{id=*}:verb",
		},
		{
			patterns: []stubPattern{
				{
					method: "GET",
					ops:    []int{int(utilities.OpLitPush), 0, int(utilities.OpPush), 0, int(utilities.OpConcatN), 1, int(utilities.OpCapture), 1},
					pool:   []string{"foo", "id"},
				},
			},
			reqMethod: "GET",
			reqPath:   "/foo/bar",
			headers: map[string]string{
				"Content-Type": "application/json",
			},
			respStatus:  http.StatusOK,
			respContent: "GET /foo/{id=*}",
		},
		{
			patterns: []stubPattern{
				{
					method: "GET",
					ops:    []int{int(utilities.OpLitPush), 0, int(utilities.OpPush), 0, int(utilities.OpConcatN), 1, int(utilities.OpCapture), 1},
					pool:   []string{"foo", "id"},
				},
			},
			reqMethod: "GET",
			reqPath:   "/foo/bar:123",
			headers: map[string]string{
				"Content-Type": "application/json",
			},
			respStatus:  http.StatusOK,
			respContent: "GET /foo/{id=*}",
		},
		{
			patterns: []stubPattern{
				{
					method: "POST",
					ops:    []int{int(utilities.OpLitPush), 0, int(utilities.OpPush), 0, int(utilities.OpConcatN), 1, int(utilities.OpCapture), 1},
					pool:   []string{"foo", "id"},
				},
				{
					method: "POST",
					ops:    []int{int(utilities.OpLitPush), 0, int(utilities.OpPush), 0, int(utilities.OpConcatN), 1, int(utilities.OpCapture), 1},
					pool:   []string{"foo", "id"},
					verb:   "verb",
				},
			},
			reqMethod: "POST",
			reqPath:   "/foo/bar:verb",
			headers: map[string]string{
				"Content-Type": "application/json",
			},
			respStatus:  http.StatusOK,
			respContent: "POST /foo/{id=*}:verb",
		},
		{
			patterns: []stubPattern{
				{
					method: "GET",
					ops:    []int{int(utilities.OpLitPush), 0},
					pool:   []string{"foo"},
				},
			},
			reqMethod: "POST",
			reqPath:   "foo",
			headers: map[string]string{
				"Content-Type": "application/json",
			},
			respStatus: http.StatusBadRequest,
		},
		{
			patterns: []stubPattern{
				{
					method: "POST",
					ops:    []int{int(utilities.OpLitPush), 0, int(utilities.OpPush), 0, int(utilities.OpConcatN), 1, int(utilities.OpCapture), 1},
					pool:   []string{"foo", "id"},
				},
				{
					method: "POST",
					ops:    []int{int(utilities.OpLitPush), 0, int(utilities.OpPush), 0, int(utilities.OpConcatN), 1, int(utilities.OpCapture), 1},
					pool:   []string{"foo", "id"},
					verb:   "verb:subverb",
				},
			},
			reqMethod: "POST",
			reqPath:   "/foo/bar:verb:subverb",
			headers: map[string]string{
				"Content-Type": "application/json",
			},
			respStatus:  http.StatusOK,
			respContent: "POST /foo/{id=*}:verb:subverb",
		},
		{
			patterns: []stubPattern{
				{
					method: "GET",
					ops:    []int{int(utilities.OpLitPush), 0, int(utilities.OpPush), 1, int(utilities.OpCapture), 1, int(utilities.OpLitPush), 2},
					pool:   []string{"foo", "id", "bar"},
				},
			},
			reqMethod: "POST",
			reqPath:   "/foo/404%2fwith%2Fspace/bar",
			headers: map[string]string{
				"Content-Type": "application/json",
			},
			respStatus:     http.StatusNotFound,
			unescapingMode: runtime.UnescapingModeLegacy,
		},
		{
			patterns: []stubPattern{
				{
					method: "GET",
					ops: []int{
						int(utilities.OpLitPush), 0,
						int(utilities.OpPush), 0,
						int(utilities.OpConcatN), 1,
						int(utilities.OpCapture), 1,
						int(utilities.OpLitPush), 2},
					pool: []string{"foo", "id", "bar"},
				},
			},
			reqMethod: "GET",
			reqPath:   "/foo/success%2fwith%2Fspace/bar",
			headers: map[string]string{
				"Content-Type": "application/json",
			},
			respStatus:     http.StatusOK,
			unescapingMode: runtime.UnescapingModeAllExceptReserved,
			respContent:    "GET /foo/{id=*}/bar",
		},
		{
			patterns: []stubPattern{
				{
					method: "GET",
					ops: []int{
						int(utilities.OpLitPush), 0,
						int(utilities.OpPush), 0,
						int(utilities.OpConcatN), 1,
						int(utilities.OpCapture), 1,
						int(utilities.OpLitPush), 2},
					pool: []string{"foo", "id", "bar"},
				},
			},
			reqMethod: "GET",
			reqPath:   "/foo/success%2fwith%2Fspace/bar",
			headers: map[string]string{
				"Content-Type": "application/json",
			},
			respStatus:     http.StatusNotFound,
			unescapingMode: runtime.UnescapingModeAllCharacters,
		},
		{
			patterns: []stubPattern{
				{
					method: "GET",
					ops: []int{
						int(utilities.OpLitPush), 0,
						int(utilities.OpPush), 0,
						int(utilities.OpConcatN), 1,
						int(utilities.OpCapture), 1,
						int(utilities.OpLitPush), 2},
					pool: []string{"foo", "id", "bar"},
				},
			},
			reqMethod: "GET",
			reqPath:   "/foo/success%2fwith%2Fspace/bar",
			headers: map[string]string{
				"Content-Type": "application/json",
			},
			respStatus:     http.StatusNotFound,
			unescapingMode: runtime.UnescapingModeLegacy,
		},
		{
			patterns: []stubPattern{
				{
					method: "GET",
					ops: []int{
						int(utilities.OpLitPush), 0,
						int(utilities.OpPushM), 0,
						int(utilities.OpConcatN), 1,
						int(utilities.OpCapture), 1,
					},
					pool: []string{"foo", "id", "bar"},
				},
			},
			reqMethod: "GET",
			reqPath:   "/foo/success%2fwith%2Fspace",
			headers: map[string]string{
				"Content-Type": "application/json",
			},
			respStatus:     http.StatusOK,
			unescapingMode: runtime.UnescapingModeAllExceptReserved,
			respContent:    "GET /foo/{id=**}",
		},
		{
			patterns: []stubPattern{
				{
					method: "POST",
					ops: []int{
						int(utilities.OpLitPush), 0,
						int(utilities.OpLitPush), 1,
						int(utilities.OpLitPush), 2,
						int(utilities.OpPush), 0,
						int(utilities.OpConcatN), 2,
						int(utilities.OpCapture), 3,
					},
					pool: []string{"api", "v1", "organizations", "name"},
					verb: "action",
				},
			},
			reqMethod: "POST",
			reqPath:   "/api/v1/" + url.QueryEscape("organizations/foo") + ":action",
			headers: map[string]string{
				"Content-Type": "application/json",
			},
			respStatus:     http.StatusOK,
			unescapingMode: runtime.UnescapingModeAllCharacters,
			respContent:    "POST /api/v1/{name=organizations/*}:action",
		},
	} {
		t.Run(strconv.Itoa(i), func(t *testing.T) {
			var opts []runtime.ServeMuxOption
			opts = append(opts, runtime.WithUnescapingMode(spec.unescapingMode))
			if spec.disablePathLengthFallback {
				opts = append(opts,
					runtime.WithDisablePathLengthFallback(),
				)
			}
			mux := runtime.NewServeMux(opts...)
			for _, p := range spec.patterns {
				func(p stubPattern) {
					pat, err := runtime.NewPattern(1, p.ops, p.pool, p.verb)
					if err != nil {
						t.Fatalf("runtime.NewPattern(1, %#v, %#v, %q) failed with %v; want success", p.ops, p.pool, p.verb, err)
					}
					mux.Handle(p.method, pat, func(w http.ResponseWriter, r *http.Request, pathParams map[string]string) {
						_, _ = fmt.Fprintf(w, "%s %s", p.method, pat.String())
					})
				}(p)
			}

			reqUrl := fmt.Sprintf("https://host.example%s", spec.reqPath)
			r, err := http.NewRequest(spec.reqMethod, reqUrl, bytes.NewReader(nil))
			if err != nil {
				t.Fatalf("http.NewRequest(%q, %q, nil) failed with %v; want success", spec.reqMethod, reqUrl, err)
			}
			for name, value := range spec.headers {
				r.Header.Set(name, value)
			}
			w := httptest.NewRecorder()
			mux.ServeHTTP(w, r)

			if got, want := w.Code, spec.respStatus; got != want {
				t.Errorf("w.Code = %d; want %d; patterns=%v; req=%v", got, want, spec.patterns, r)
			}
			if spec.respContent != "" {
				if got, want := w.Body.String(), spec.respContent; got != want {
					t.Errorf("w.Body = %q; want %q; patterns=%v; req=%v", got, want, spec.patterns, r)
				}
			}
		})
	}
}

var defaultHeaderMatcherTests = []struct {
	name     string
	in       string
	outValue string
	outValid bool
}{
	{
		"permanent HTTP header should return prefixed",
		"Accept",
		"grpcgateway-Accept",
		true,
	},
	{
		"key prefixed with MetadataHeaderPrefix should return without the prefix",
		"Grpc-Metadata-Custom-Header",
		"Custom-Header",
		true,
	},
	{
		"non-permanent HTTP header key without prefix should not return",
		"Custom-Header",
		"",
		false,
	},
}

func TestDefaultHeaderMatcher(t *testing.T) {
	for _, tt := range defaultHeaderMatcherTests {
		t.Run(tt.name, func(t *testing.T) {
			out, valid := runtime.DefaultHeaderMatcher(tt.in)
			if out != tt.outValue {
				t.Errorf("got %v, want %v", out, tt.outValue)
			}
			if valid != tt.outValid {
				t.Errorf("got %v, want %v", valid, tt.outValid)
			}
		})
	}
}

var defaultRouteMatcherTests = []struct {
	name   string
	method string
	path   string
	valid  bool
}{
	{
		"Test route /",
		"GET",
		"/",
		true,
	},
	{
		"Simple Endpoint",
		"GET",
		"/v1/{bucket}/do:action",
		true,
	},
	{
		"Complex Endpoint",
		"POST",
		"/v1/b/{bucket_name=buckets/*}/o/{name}",
		true,
	},
	{
		"Wildcard Endpoint",
		"GET",
		"/v1/endpoint/*",
		true,
	},
	{
		"Invalid Endpoint",
		"POST",
		"v1/b/:name/do",
		false,
	},
}

func TestServeMux_HandlePath(t *testing.T) {
	mux := runtime.NewServeMux()
	testFn := func(w http.ResponseWriter, r *http.Request, pathParams map[string]string) {
	}
	for _, tt := range defaultRouteMatcherTests {
		t.Run(tt.name, func(t *testing.T) {
			err := mux.HandlePath(tt.method, tt.path, testFn)
			if tt.valid && err != nil {
				t.Errorf("The route %v with method %v and path %v invalid, got %v", tt.name, tt.method, tt.path, err)
			}
			if !tt.valid && err == nil {
				t.Errorf("The route %v with method %v and path %v should be invalid", tt.name, tt.method, tt.path)
			}
		})
	}
}

var healthCheckTests = []struct {
	name           string
	code           codes.Code
	status         grpc_health_v1.HealthCheckResponse_ServingStatus
	httpStatusCode int
}{
	{
		"Test grpc error code",
		codes.NotFound,
		grpc_health_v1.HealthCheckResponse_UNKNOWN,
		http.StatusNotFound,
	},
	{
		"Test HealthCheckResponse_SERVING",
		codes.OK,
		grpc_health_v1.HealthCheckResponse_SERVING,
		http.StatusOK,
	},
	{
		"Test HealthCheckResponse_NOT_SERVING",
		codes.OK,
		grpc_health_v1.HealthCheckResponse_NOT_SERVING,
		http.StatusServiceUnavailable,
	},
	{
		"Test HealthCheckResponse_UNKNOWN",
		codes.OK,
		grpc_health_v1.HealthCheckResponse_UNKNOWN,
		http.StatusServiceUnavailable,
	},
	{
		"Test HealthCheckResponse_SERVICE_UNKNOWN",
		codes.OK,
		grpc_health_v1.HealthCheckResponse_SERVICE_UNKNOWN,
		http.StatusNotFound,
	},
}

func TestWithHealthzEndpoint_codes(t *testing.T) {
	for _, tt := range healthCheckTests {
		t.Run(tt.name, func(t *testing.T) {
			mux := runtime.NewServeMux(runtime.WithHealthzEndpoint(&dummyHealthCheckClient{status: tt.status, code: tt.code}))

			r := httptest.NewRequest(http.MethodGet, "/healthz", nil)
			rr := httptest.NewRecorder()

			mux.ServeHTTP(rr, r)

			if rr.Code != tt.httpStatusCode {
				t.Errorf(
					"result http status code for grpc code %q and status %q should be %d, got %d",
					tt.code, tt.status, tt.httpStatusCode, rr.Code,
				)
			}
		})
	}
}

func TestWithHealthEndpointAt_consistentWithHealthz(t *testing.T) {
	const endpointPath = "/healthz"

	r := httptest.NewRequest(http.MethodGet, endpointPath, nil)

	for _, tt := range healthCheckTests {
		tt := tt

		t.Run(tt.name, func(t *testing.T) {
			client := &dummyHealthCheckClient{
				status: tt.status,
				code:   tt.code,
			}

			w := httptest.NewRecorder()

			runtime.NewServeMux(
				runtime.WithHealthEndpointAt(client, endpointPath),
			).ServeHTTP(w, r)

			refW := httptest.NewRecorder()

			runtime.NewServeMux(
				runtime.WithHealthzEndpoint(client),
			).ServeHTTP(refW, r)

			if w.Code != refW.Code {
				t.Errorf(
					"result http status code for grpc code %q and status %q should be equal to %d, but got %d",
					tt.code, tt.status, refW.Code, w.Code,
				)
			}
		})
	}
}

func TestWithHealthzEndpoint_serviceParam(t *testing.T) {
	service := "test"

	// trigger error to output service in body
	dummyClient := dummyHealthCheckClient{status: grpc_health_v1.HealthCheckResponse_UNKNOWN, code: codes.Unknown}
	mux := runtime.NewServeMux(runtime.WithHealthzEndpoint(&dummyClient))

	r := httptest.NewRequest(http.MethodGet, "/healthz?service="+service, nil)
	rr := httptest.NewRecorder()

	mux.ServeHTTP(rr, r)

	if !strings.Contains(rr.Body.String(), service) {
		t.Errorf(
			"service query parameter should be translated to HealthCheckRequest: expected %s to contain %s",
			rr.Body.String(), service,
		)
	}
}

var _ grpc_health_v1.HealthClient = (*dummyHealthCheckClient)(nil)

type dummyHealthCheckClient struct {
	status grpc_health_v1.HealthCheckResponse_ServingStatus
	code   codes.Code
}

func (g *dummyHealthCheckClient) Check(ctx context.Context, r *grpc_health_v1.HealthCheckRequest, opts ...grpc.CallOption) (*grpc_health_v1.HealthCheckResponse, error) {
	if g.code != codes.OK {
		return nil, status.Error(g.code, r.GetService())
	}

	return &grpc_health_v1.HealthCheckResponse{Status: g.status}, nil
}

func (g *dummyHealthCheckClient) Watch(ctx context.Context, r *grpc_health_v1.HealthCheckRequest, opts ...grpc.CallOption) (grpc_health_v1.Health_WatchClient, error) {
	return nil, status.Error(codes.Unimplemented, "unimplemented")
}

redpajama_set_name: RedPajamaGithub


Recently received my first mystery box from spraythemag.co.uk and wanted to write up a quick review about my experience since I didn't see many online.
The good: When it was all said and done, I easily ended up getting at least £250.00 worth of Airsoft goods. It was all two-tone airsoft products, but since I'm not certified to use RIF airsoft guns this was perfect for me. The guns varied a lot in quality, some of them were definitely a lot nicer than others but it included everything I needed to get started.
The bad: Shipping took a couple days longer than I had hoped. I ended up getting it in about 4 business days. The other thing is you obviously don't know what you're going to get. Which is half the fun, but I hadn't intended on getting an airsoft sniper yet that's part of what I now have to work with!
All in all, I'm happy with my investment. Two of my friends had bought the mystery box before I did, one of them got £400+ worth of stuff and the other only going around £200 worth. So it's hard to know exactly what you'll get. If you have something particular in mind, go with that. But if you like surprises, and want to take a gamble, the mystery box is perfect for you.


text:
Animal Products (Imports)
The Minister of State, Department for Environment, Food and Rural Affairs
(Jim Fitzpatrick)
As required under the Animal Health Act 1981 (as amended by the Animal Health Act 2002) the Government will publish today a review of controls on the import of animal products for the financial year 2008-09. I welcome the opportunity to review and report on efforts during the past year to reduce the risk of disease entering the country via imports of animal products.
The control of imports of animal products remains a major concern for the Government as we fully appreciate the devastating effect that disease outbreaks can have on our farming of livestock and crops and on the environment and, in trying to protect animal health, we know how important it is to take a variety of measures at the border and inland. It has once again been a challenging year in monitoring the constantly changing disease situation around the world and evaluating and responding to threats. We continue to ensure that veterinary checks are carried out on legally imported animal products from non-European Union (EU) countries and work closely with Her Majesty's Revenue and Customs (HMRC)/United Kingdom Border Agency (UKBA) and other relevant Government Departments to combat the risk of major diseases entering the country through illegal imports from outside the EU.
UKBA continues to deliver an enforcement strategy that targets anti-smuggling activity on the highest risk traffic to combat illegal imports of animal products into Great Britain (GB) and to review deployment of resources and react flexibly in response to changes in the pattern of risk.
There continues to be a joined-up approach across Government Departments on an overall communications strategy to raise awareness among international travellers of the personal import rules for food, with a great deal of publicity continuing to be undertaken inland within GB, at the border and also overseas.
These are some of the highlights of our working during the year:
EU veterinary week in November highlighted the programme of already ongoing work in respect of our cross-Government personal imports campaign at border control points, including a stand at Heathrow airport, terminal 3 during the week which had over 5,000 visitors and was covered by BBC Breakfast news;
new TV filler "Don't bring me back", produced to support our overall personal imports campaign, has achieved some excellent airtime across a variety of channels with most of the transmissions going out in peak evening viewing time. It has built in value to be one of the top ten fillers of 2008-09. It has also received out of home play in locations such as surgeries and gyms;
food and veterinary office (FVO) visit in November 2008—inspectors indicated that the UK has a functioning import control system and recognised further improvements made by the UK.
We will continue to monitor and assess the changing threats from around the world, and work with HMRC/UKBA and other enforcement partners to make sure that our enforcement activity at UK borders is targeted at the current risks.
Copies of the Review are available on the DEFRA 'personal food imports' website: www.defra.gov.uk/animalh/illeqali, and will be sent to stakeholders for information seeking their feedback. Hard copies will also be available on request.


text:
OHB SE: OHB proposals for the Copernicus project selected by ESA
OHB SE / Key word(s): Miscellaneous
Bremen, 01.07.2020. OHB System AG, a subsidiary of Bremen-based space and technology group OHB SE (Prime Standard, ISIN DE0005936124) has today been selected by the European Space Agency ESA as the prime contractor for the CO2M mission (CO2 Monitoring Mission in the Copernicus program). This mission includes the Copernicus satellites, which will measure global anthropogenic CO2 emissions and thus play a key role in studying the causes of climate change and monitoring it. OHB System and OHB Italia will also be responsible for the payload on two further missions (CHIME: Copernicus Hyperspectral Imaging Mission for the Environment and CIMR Copernicus Imaging Microwave Radiometer) as subcontractors of Thales Alenia Space. The order volume resulting from today's bid decisions is expected to be more than EUR 800 million. Final contract negotiations will start shortly and contract signings are expected in the coming weeks.
Copernicus is a satellite earth observation program of the European Commission and the European Space Agency ESA. It provides earth observation data for environmental protection, climate monitoring, natural disaster assessment and other social tasks.
In addition, ESA's Industrial Policy Committee (IPC) has approved OHB System's proposal for the HERA asteroid defense mission for final negotiations. Implementation of the HERA mission has already commenced. The contract is expected to be worth around EUR 130 million.


text:
In this June 11, 2020, file photo, Secretary of State Mike Pompeo speaks at the State Department in Washington. Pompeo is calling on China to release two Canadian men that he says face "groundless" charges of spying. THE CANADIAN PRESS/Yuri Gripas/Pool via AP
Pompeo calls on China to release two Michaels, says U.S. stands with Canada
The two men were arrested in December 2018, nine days after Canada detained Meng Wanzhou
Jun. 22, 2020 7:50 a.m.
U.S. Secretary of State Mike Pompeo is calling on China to release two Canadian men that he says face "groundless" charges of spying.
Chinese authorities announced the charges against Michael Kovrig and Michael Spavor on Friday, after they had spent more than 550 days in prison without access to lawyers or family.
Since January, China has prevented Canadian diplomats from visiting Kovrig and Spavor, citing COVID-19 restrictions.
The two men were arrested in December 2018, nine days after Canada detained Chinese high-tech scion Meng Wanzhou on an American extradition warrant.
Prime Minister Justin Trudeau said Friday Chinese authorities "directly linked" Meng's case with Kovrig's and Spavor's, and reiterated the government's long held position that China has "arbitrarily detained" them.
Pompeo says the U.S. is deeply concerned by China's decision to formally charge Kovrig and Spavor.
"These charges are politically motivated and completely groundless. The United States stands with Canada in calling on Beijing for the immediate release of the two men and rejects the use of these unjustified detentions to coerce Canada," Pompeo said in a statement on Monday.
"Additionally, we echo Canada's call for immediate consular access to its two citizens, in accordance with the Vienna Convention on Consular Relations, as China has prohibited such access for almost six months, and the world has no knowledge of the two Canadians' condition."
READ MORE: China charges 'two Michaels' with spying in Huawei-linked case
Meng, the chief financial officer of Huawei Technologies, is living in luxury Vancouver home while her extradition hearing wends its way through a British Columbia court.
The United States wants to prosecute Meng for fraud, alleging she lied to banks in Hong Kong about her company's connections with Iran, which could possibly violate U.S. sanctions.
A spokesman for China's foreign ministry said Monday that his country does not arbitrarily detain people, and that Trudeau's Friday remarks were "irresponsible."
Last month, the B.C. Supreme Court judge ruled the allegations against Meng could constitute a crime in Canada. That meant Meng's case remains before the court, unresolved.
Last week, Meng's lawyers accused the Americans of misleading the B.C. court and said they are seeking a stay in the proceedings.
Mike Blanchfield, The Associated Press
CanadaChinaUSA
Online poll finds 43 per cent of Chinese-Canadians faced threats over COVID-19
Helping folks navigate the fear-filled pandemic with panache


One challenge of being homeless – having to sleep outside – will soon be softened for a handful of people in that situation, thanks to the dedicated efforts of a dozen South Surrey boys.
The Grade 5 friends – Eli Chuback, Mason MacGregor, Ben Dobson, Julius Tome, Spencer Brine, Oliver Botelho, Kendall Homenick, Jacob Spence, Trevor Iannacone, Evan Baker, Dylan Homenick and Flynn Cavanagh – all students at Crescent Park Elementary, spent hundreds of hours over the past several months crafting sleeping mats out of plastic bags.
For those who receive them, they will provide a buffer from the wet, cold ground.
Tuesday, the determined students presented six of the mats, including one sized for a pet, to officials at Sources Newton Resource Centre, where the agency's homelessness and advocacy services are located.
The gesture was "amazing," said Jeanette Grimmer, a Surrey resident who knows all too well how it feels to have to sleep outside.
Grimmer said she told the boys how she'd lived in a tent in Vancouver for 2½ years, collecting empty bottles to afford food, before finding housing in Surrey's Chimney Heights neighbourhood last year. While she has a bed now, in Vancouver she would sleep on such things as a yoga-type mat or, if she was lucky, an air mattress.
Receiving a mat like those the boys donated "would've helped a little bit, keep us dry," she told Peace Arch News.
The students took a shine to the idea of helping the homeless earlier this year, and began gathering every Monday afternoon in their school library to turn plastic grocery bags into sleeping mats.
After learning how to crochet from volunteers at Alexandra Neighbourhood House, they transformed the bags into 'plarn' – yarn made from strips of plastic – and set to the task.
Each mat used 700-800 bags, took about 100 hours to craft, is lightweight and portable, and has a strap for easy transport.
Sources' Housing First worker Bruce Foster is confident that will be the case.
In addition to being "a great re-use of a non-recyclable material," the mat project was uplifting to those who work with the homeless, Foster said.
Surrey, he noted, has the second-highest population of homeless people in the province, behind Vancouver.
"We're so proud of these boys. They've really taken an idea, brought it to fruition, brought it to reality," A'Bear said.


Jealousy is powerful. Our bodies actually experience jealousy through physiological responses. The body has specific neural pathways and chemical responses that are elicited when a situation that triggers jealousy occurs.
Most people value monogamous relationships. As a species, we value commitment to a single partner. Many people end up in long-term committed relationships. Even in the beginning stages of a monogamous relationship, jealousy can occur.
Jealousy stems from separation from our preferred partner, our significant other. In a committed relationship, we tend to expect a certain level of commitment, attachment, and attention from our partners. When any of this is threatened, we may experience jealousy.
Basically, jealousy is created when 3 things occur at the same time. When a person who is not in the relationship is seen by one of the relationship partners as wanting some amount of the resources in that relationship (such as a partner's attention, time, affection, etc.), jealousy may occur.
If you are in a relationship and you care about (or value) certain aspects of the relationship, you may end up experiencing jealousy if or when a third party threatens the relationship (even if they do so unintentionally).
If any of these resources or any other aspect of a relationship you are in is potentially threatened, you may experience jealousy. A resource may be threatened if a person outside the relationship either does take on the resource (or some of the resource), or if they seem to want to take the resource out of the relationship.
Jealousy is an internal experience that is impacted by our external environment. We feel jealousy within our minds as an emotion, but we also experience jealousy physiologically in our bodies. Although people often talk about emotions and how they feel regarding these emotions, the physical feeling of an emotion is often neglected.
If we learn to identify our physical experiences as they relate to our life experiences and emotions, we can help ourselves heal and thrive in life.
When a couple is separated, the partners may have increased cortisol levels. Cortisol is known as a stress hormone. When a couple is separated for any reason, cortisol levels may rise for many weeks.1When cortisol is high, this can have a negative impact on your body. For instance, you may gain weight more easily, you may be more likely to have poor eating habits, and increased blood sugar.
The lateral septum is related to protecting a partner and mating-induced aggression. The cingulate cortex is related to being territorial. When an individual sees their partner with another person and jealousy is triggered, the lateral septum and cingulate cortex are activated leading to potentially problematic behaviors, or at a minimum, feelings of wanting to protect and keep a loved one's affection and connection.
Jealousy can harm or protect a relationship.
When connecting with your partner you can experience an increase in oxytocin, which is sometimes known as the "love hormone," as it is often activated when couples physically connect or cuddle with each other.
Because of the physical symptoms that can be caused with the experience of jealousy, the body naturally can develop signs of illness such as lowered immune system. However, the opposite is also true.
Sometimes, when a person is ill, their illness may lead to more experiences of jealousy. Although their life experience will play a role in what the jealousy is about, the physical illness can lead to higher chances of being jealous due to the physical changes that occur in the body.
Being aware of how jealousy can develop and how it can show up in the body can help you to build a healthier relationship and improve your own well-being.
You think that another person outside the relationship is wanting to obtain those cherished resources from your partner or your relationship.
Jealousy is related to feeling like something of yours is being taken or may be taken away. In the instance of a relationship, jealousy makes you feel as if either your partner will be taken away or that parts of the relationship will be taken away.
It seems that jealousy can be helpful when experienced in mild forms because the experience of jealousy shows that you care about your partner. However, when jealousy gets out of hand and you feel threatened in situations that maybe should not result in so much emotional turmoil, it may be helpful to consider your triggers and feelings of security in your relationship.
Certain personality types may have higher chances of experiencing jealousy while others may be less apt to experience jealousy as often. Also, a history of unhealthy relationships or problematic childhood experiences may lead a person to experiencing more jealousy in adult relationships.3 Understanding your personal history, relationship style, personality, and triggers will help you in handling jealousy in a healthy way.
Jealousy can help a relationship stay intact or it can destroy the relationship if a person reacts in an unhealthy manner to their experience of jealousy. Jealousy is associated with physical changes in the body. While connection with a partner can lower stress, jealousy can increase stress hormones in the brain.
Maninger, N., Mendoza, S. P., Williams, D. R., Mason, W. A., Cherry, S. R., Rowland, D. J., Schaefer, T., … Bales, K. L. (2017). Imaging, Behavior and Endocrine Analysis of "Jealousy" in a Monogamous Primate. Frontiers in ecology and evolution, 5, 119.
Ravindran, A., Carney, M. W., & Denman, A. M. (1980). Systemic lupus erythematosus presenting as morbid jealousy. Postgraduate medical journal, 56(656), 419-20.
Maninger, N., Hinde, K., Mendoza, S. P., Mason, W. A., Larke, R. H., Ragen, B. J., Jarcho, M. R., Cherry, S. R., Rowland, D. J., Ferrer, E., … Bales, K. L. (2017). Pair bond formation leads to a sustained increase in global cerebral glucose metabolism in monogamous male titi monkeys (Callicebus cupreus). Neuroscience, 348, 302-312.