text:
package org.xsaas.xstat.web.action.manage.edit;

import java.util.LinkedList;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.xsaas.xstat.web.conf.StatusConstants;

import org.xsaas.xstat.business.IEmployeeInfoService;
import org.xsaas.xstat.business.IInquisitionInfoService;
import org.xsaas.xstat.business.IPartInfoService;
import org.xsaas.xstat.business.IPartQuestionInfoService;
import org.xsaas.xstat.business.ISelectWeightInfoService;
import org.xsaas.xstat.po.EmployeeInfo;
import org.xsaas.xstat.po.InquisitionInfo;
import org.xsaas.xstat.po.PartInfo;
import org.xsaas.xstat.po.PartQuestionInfo;
import org.xsaas.xstat.po.SelectWeightInfo;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class EditWeightAction extends ActionSupport {
	/**
	 *
	 */
	private static final long serialVersionUID = 453855886740013266L;
	private static Log logger = LogFactory.getLog(EditWeightAction.class);
	private ISelectWeightInfoService selectWeightInfoService = null;
	private IInquisitionInfoService inquisitionInfoService = null;
	private IPartQuestionInfoService partQuestionInfoService = null;
	private IPartInfoService partInfoService = null;
//	private IQuestionSelectInfoService questionSelectInfoService = null;

//	private List<QuestionSelectInfo> selectInfoList = null;
	private List<PartInfo> partInfoList =  new LinkedList<PartInfo>();
	private List<PartQuestionInfo> partQuestionInfoList =  new LinkedList<PartQuestionInfo>();
	private List<InquisitionInfo> inquisitionInfoList =  new LinkedList<InquisitionInfo>();

	private Long inquisitionID = null;
	private Long partQuestionID = null;
	private Long partID = null;
	private Long partSelectID = null;
	private Integer weight = null;
	private Long optionRelationID = null;

	private Long selectWeightID = null;

	@Override
	public String execute() throws Exception {
		try{
			String username = (String)ActionContext.getContext().getSession().get("LOGINUSERNAME");
			String password = (String)ActionContext.getContext().getSession().get("LOGINPASSWORD");
			if(username == null || password == null) {
				return LOGIN;
			}
			SelectWeightInfo info = (SelectWeightInfo) ActionContext.getContext().getSession().get("WEIGHTEDIT");
			if(info != null) {
				if(partQuestionID != null) {
					info.setPartQuestionID(partQuestionID);
				}
				if(inquisitionID != null) {
					info.setInquisitionID(inquisitionID);
				}
				if(weight != null) {
					info.setWeight(weight);
				}
				if(partID != null) {
					info.setPartID(partID);
				}
				if(partSelectID != null) {
					info.setPartSelectID(partSelectID);
				}
				if(optionRelationID != null) {
					info.setOptionRelationID(optionRelationID);
				}

				selectWeightInfoService.update(info);
			}
		}catch(Exception e) {
			logger.error(""+e.getMessage(),e.getCause());
		}
		return SUCCESS;
	}

	@SuppressWarnings("unchecked")
	public String edit() throws Exception {
		try{
			String username = (String)ActionContext.getContext().getSession().get("LOGINUSERNAME");
			String password = (String)ActionContext.getContext().getSession().get("LOGINPASSWORD");
			if(username == null || password == null) {
				return LOGIN;
			}
			if(selectWeightID == null){
				this.addActionError("编号为空!");
				return ERROR;
			}

			inquisitionInfoList = inquisitionInfoService.getInquisitionInfoList();
			Long selectInquisitionID = null;
			if(inquisitionID != null){
				selectInquisitionID = inquisitionID;
			}else{
				if(inquisitionInfoList != null && inquisitionInfoList.size() > 0) {
					InquisitionInfo ii = inquisitionInfoList.get(0);
					if(ii!=null){
						selectInquisitionID = ii.getInquisitionID();
					}
				}
			}
			ActionContext.getContext().put("INQUISITIONVALUE",selectInquisitionID);//客户问卷初始化
			Long selectPartID = null;
		    partInfoList = partInfoService.getPartInfoList(selectInquisitionID);
		    if(partID != null){
		    	selectPartID = partID;
			}else{
				if(partInfoList != null && partInfoList.size() > 0) {
					PartInfo pi = partInfoList.get(0);
					if(pi!=null){
						selectPartID = pi.getPartID();
					}
				}
			}
		    if(selectPartID != null) {
			    partQuestionInfoList = partQuestionInfoService.getPartQuestionInfoList(selectPartID);
		    }
			SelectWeightInfo info = selectWeightInfoService.getSelectWeightInfo(selectWeightID);
			ActionContext.getContext().getSession().put("WEIGHTEDIT",info);
		}catch(Exception e){
			logger.error(""+e.getMessage(),e.getCause());
		}
		return SUCCESS;
	}

	public Long getPartQuestionID() {
		return partQuestionID;
	}

	public void setPartQuestionID(Long partQuestionID) {
		this.partQuestionID = partQuestionID;
	}

	public Integer getWeight() {
		return weight;
	}

	public void setWeight(Integer weight) {
		this.weight = weight;
	}

	public void setSelectWeightInfoService(
			ISelectWeightInfoService selectWeightInfoService) {
		this.selectWeightInfoService = selectWeightInfoService;
	}
	public Long getPartID() {
		return partID;
	}
	public void setPartID(Long partID) {
		this.partID = partID;
	}

	public Long getInquisitionID() {
		return inquisitionID;
	}
	public void setInquisitionID(Long inquisitionID) {
		this.inquisitionID = inquisitionID;
	}

	public Long getSelectWeightID() {
		return selectWeightID;
	}

	public void setSelectWeightID(Long selectWeightID) {
		this.selectWeightID = selectWeightID;
	}

	public List<PartInfo> getPartInfoList() {
		return partInfoList;
	}

	public List<PartQuestionInfo> getPartQuestionInfoList() {
		return partQuestionInfoList;
	}

	public List<InquisitionInfo> getInquisitionInfoList() {
		return inquisitionInfoList;
	}

	public void setInquisitionInfoService(
			IInquisitionInfoService inquisitionInfoService) {
		this.inquisitionInfoService = inquisitionInfoService;
	}

	public void setPartQuestionInfoService(
			IPartQuestionInfoService partQuestionInfoService) {
		this.partQuestionInfoService = partQuestionInfoService;
	}

	public void setPartInfoService(IPartInfoService partInfoService) {
		this.partInfoService = partInfoService;
	}

	public void setOptionRelationID(Long optionRelationID) {
		this.optionRelationID = optionRelationID;
	}

	public Long getPartSelectID() {
		return partSelectID;
	}

	public void setPartSelectID(Long partSelectID) {
		this.partSelectID = partSelectID;
	}
}


text:
from .Depedencies.WorksheetData import WorksheetData
import sqlite3
import json
import datetime

sqlquery = '''   SELECT publish_utc_timestamp,
                           publisher_user_id,
                           message_data,
                           message_meta_notify_type,
                           chatSessionStore.data,
                           userStore.data,
                           meetUpStore.data
                    FROM message_table
                        LEFT JOIN userStore
                            ON userStore.id = publisher_user_id
                        LEFT JOIN chatSessionStore
                            ON chatSessionStore.id = channel_id
                        LEFT JOIN meetUpStore
                            ON meetUpStore.id = message_meta_meetupid'''
# -------------------------------------------------------------------------------------------------
def checkValid(filePath):
    try:
        conn = sqlite3.connect(filePath)
        c = conn.cursor()
        c.execute(sqlquery)
        print("RUNNING SCOUT MESSAGES")
        print(filePath)
        return True
    except:
        pass
    return False
# messages ----------------------------------------------------------------------------------------
def runParser(filePath, outputLoc):
    scoutMessage = WorksheetData()
    scoutMessage.appName = 'Scout_Messages'
    scoutMessage.worksheetName = 'Scout_Messages'
    scoutMessage.headers = ['Time', 'Type', 'Participants', 'To', 'From', 'Message', 'Meet Up Name', 'Meet Up Creation Time', 'Meet Up Time', 'Meet Up Location']

    conn = sqlite3.connect(filePath)
    c = conn.cursor()
    c.execute(sqlquery)

    TIME_COL_IDX = 0
    FROM_COL_IDX = 1
    MESSAGE_COL_IDX = 2
    TYPE_COL_IDX = 3
    PARTICIPANTS_COL_IDX = 4
    NAME_COL_IDX = 5
    MEETUP_COL_IDX = 6

    userNames = {}  # for user id to name conversions

    row = c.fetchone()
    while row:

        rowData = ['']*10

        if row[TIME_COL_IDX]:
            rowData[0] = datetime.datetime.fromtimestamp(row[TIME_COL_IDX]/1000).strftime('%Y-%m-%d %H:%M:%S')
        if row[TYPE_COL_IDX]:
            rowData[1] = (row[TYPE_COL_IDX])
        if row[PARTICIPANTS_COL_IDX]:
            decodedData = json.loads(row[PARTICIPANTS_COL_IDX].decode("UTF-8"))
            party = decodedData["members"]

        if row[NAME_COL_IDX]:
            decodedName = json.loads(row[NAME_COL_IDX].decode("UTF-8"))
            name = decodedName["user_firstName"] + " " + decodedName["user_LastName"]
            userNames[row[FROM_COL_IDX]] = name
            for idx, val in enumerate(party):
                if val in userNames:
                    party[idx] = userNames[val]
            rowData[4] = userNames[row[FROM_COL_IDX]]
        if row[MESSAGE_COL_IDX]:
            decodedMessage = json.loads(row[MESSAGE_COL_IDX])
            if row[TYPE_COL_IDX] == "meetup_invite":
                rowData[9] = decodedMessage["notification_data"]["meetup_data"]["entity"]
            elif row[TYPE_COL_IDX] == "chat_receive":
                rowData[5] = decodedMessage["text_data"]
        if row[MEETUP_COL_IDX]:
            decodedMeetUp = json.loads(row[MEETUP_COL_IDX].decode("UTF-8"))
            rowData[7] = datetime.datetime.fromtimestamp(decodedMeetUp["created_time"]/1000).strftime('%Y-%m-%d %H:%M:%S')
            rowData[6] = decodedMeetUp["meetup_name"]
            rowData[8] = datetime.datetime.fromtimestamp(decodedMeetUp["meetup_time"]/1000).strftime('%Y-%m-%d %H:%M:%S')

        rowData[2] = ", ".join(party)  # convert party to string for display
        if rowData[4] in party:
            party.remove(rowData[4]) # remove the sender from participants to determine to
        rowData[3] = ", ".join(party)

        scoutMessage.appData.append(rowData)

        row = c.fetchone()

    return scoutMessage

redpajama_set_name: RedPajamaGithub


text:
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
  set(CMAKE_INSTALL_PREFIX "/home/bladestery/Sapphire/example_apps/AndroidStudioMinnie/sapphire/.externalNativeBuild/cmake/release/armeabi/install")
endif()
string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")

# Set the install configuration name.
if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
  if(BUILD_TYPE)
    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
  else()
    set(CMAKE_INSTALL_CONFIG_NAME "Release")
  endif()
  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
endif()

# Set the component getting installed.
if(NOT CMAKE_INSTALL_COMPONENT)
  if(COMPONENT)
    message(STATUS "Install component: \"${COMPONENT}\"")
    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
  else()
    set(CMAKE_INSTALL_COMPONENT)
  endif()
endif()

# Install shared libraries without execute permission?
if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
  set(CMAKE_INSTALL_SO_NO_EXE "1")
endif()

if("${CMAKE_INSTALL_COMPONENT}" STREQUAL "dev" OR NOT CMAKE_INSTALL_COMPONENT)
  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/sdk/native/libs/armeabi" TYPE STATIC_LIBRARY OPTIONAL FILES "/home/bladestery/Sapphire/example_apps/AndroidStudioMinnie/sapphire/.externalNativeBuild/cmake/release/armeabi/lib/armeabi/libopencv_shape.a")
endif()

if("${CMAKE_INSTALL_COMPONENT}" STREQUAL "dev" OR NOT CMAKE_INSTALL_COMPONENT)
  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/sdk/native/jni/include/opencv2" TYPE FILE OPTIONAL FILES "/home/bladestery/Downloads/opencv-3.2.0/modules/shape/include/opencv2/shape.hpp")
endif()

if("${CMAKE_INSTALL_COMPONENT}" STREQUAL "dev" OR NOT CMAKE_INSTALL_COMPONENT)
  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/sdk/native/jni/include/opencv2/shape" TYPE FILE OPTIONAL FILES "/home/bladestery/Downloads/opencv-3.2.0/modules/shape/include/opencv2/shape/emdL1.hpp")
endif()

if("${CMAKE_INSTALL_COMPONENT}" STREQUAL "dev" OR NOT CMAKE_INSTALL_COMPONENT)
  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/sdk/native/jni/include/opencv2/shape" TYPE FILE OPTIONAL FILES "/home/bladestery/Downloads/opencv-3.2.0/modules/shape/include/opencv2/shape/hist_cost.hpp")
endif()

if("${CMAKE_INSTALL_COMPONENT}" STREQUAL "dev" OR NOT CMAKE_INSTALL_COMPONENT)
  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/sdk/native/jni/include/opencv2/shape" TYPE FILE OPTIONAL FILES "/home/bladestery/Downloads/opencv-3.2.0/modules/shape/include/opencv2/shape/shape.hpp")
endif()

if("${CMAKE_INSTALL_COMPONENT}" STREQUAL "dev" OR NOT CMAKE_INSTALL_COMPONENT)
  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/sdk/native/jni/include/opencv2/shape" TYPE FILE OPTIONAL FILES "/home/bladestery/Downloads/opencv-3.2.0/modules/shape/include/opencv2/shape/shape_distance.hpp")
endif()

if("${CMAKE_INSTALL_COMPONENT}" STREQUAL "dev" OR NOT CMAKE_INSTALL_COMPONENT)
  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/sdk/native/jni/include/opencv2/shape" TYPE FILE OPTIONAL FILES "/home/bladestery/Downloads/opencv-3.2.0/modules/shape/include/opencv2/shape/shape_transformer.hpp")
endif()


text:
package org.ibase4j.core.support.weixin.company.aes;

import java.security.MessageDigest;
import java.util.Arrays;

/**
 * @author ShenHuaJie
 * @since 2017年2月3日 下午5:20:29
 */
public class SHA1 {
	/**
	 * 用SHA1算法生成安全签名
	 *
	 * @param token
	 *            票据
	 * @param timestamp
	 *            时间戳
	 * @param nonce
	 *            随机字符串
	 * @param encrypt
	 *            密文
	 * @return 安全签名
	 * @throws AesException
	 */
	public static String getSHA1(String token, String timestamp, String nonce, String encrypt) throws AesException {
		try {
			String[] array = new String[] { token, timestamp, nonce, encrypt };
			StringBuffer sb = new StringBuffer();
			// 字符串排序
			Arrays.sort(array);
			for (int i = 0; i < 4; i++) {
				sb.append(array[i]);
			}
			String str = sb.toString();
			// SHA1签名生成
			MessageDigest md = MessageDigest.getInstance("SHA-1");
			md.update(str.getBytes());
			byte[] digest = md.digest();

			StringBuffer hexstr = new StringBuffer();
			String shaHex = "";
			for (int i = 0; i < digest.length; i++) {
				shaHex = Integer.toHexString(digest[i] & 0xFF);
				if (shaHex.length() < 2) {
					hexstr.append(0);
				}
				hexstr.append(shaHex);
			}
			return hexstr.toString();
		} catch (Exception e) {
			e.printStackTrace();
			throw new AesException(AesException.ComputeSignatureError);
		}
	}
}


text:
package batfish.representation;

import java.io.Serializable;
import java.util.List;

import batfish.util.Util;

public class AsPathAccessList implements Serializable {

   private static final long serialVersionUID = 1L;

   private List<AsPathAccessListLine> _lines;
   private String _name;

   public AsPathAccessList(String name, List<AsPathAccessListLine> lines) {
      _lines = lines;
      _name = name;
   }

   public String getIFString(int indentLevel) {

      String retString = Util.getIndentString(indentLevel)
            + "AsPathAccessList " + _name;

      for (AsPathAccessListLine apall : _lines) {
         retString += "\n" + apall.getIFString(indentLevel + 1);
      }

      return retString;
   }

   public List<AsPathAccessListLine> getLines() {
      return _lines;
   }

   public String getName() {
      return _name;
   }

   public boolean sameParseTree(AsPathAccessList list, String prefix) {
      boolean res = (_name.equals(list._name));
      boolean finalRes = res;

      if (_lines.size() != list._lines.size()) {
         System.out.println("AsPathAccessLine:Size " + prefix);
         return false;
      }
      for (int i = 0; i < _lines.size(); i++) {
         res = (_lines.get(i).getRegex().equals(list._lines.get(i).getRegex()));
         if (res == false) {
            System.out.println("AsPathAccessLine " + prefix);
            finalRes = false;
         }
      }
      return finalRes;
   }

}


text:
typedef NS_ENUM (NSUInteger, TestTableType) {
    TestTableTypeFirst,
    TestTableTypeSecond,
    TestTableTypeThird
};

@interface TestTableStore : NSObject

- (instancetype)initWithViewModel:(SMTableViewModel *)viewModel;
- (void)updateWithViewModel:(SMTableViewModel *)viewModel;

@end


text:
Base class defining a [batch of] linear operator[s].

Subclasses of `LinearOperator` provide a access to common methods on a
(batch) matrix, without the need to materialize the matrix.  This allows:

* Matrix free computations
* Operators that take advantage of special structure, while providing a
  consistent API to users.

### Subclassing

To enable a public method, subclasses should implement the leading-underscore
version of the method.  The argument signature should be identical except for
the omission of `name="..."`.  For example, to enable
`apply(x, adjoint=False, name="apply")` a subclass should implement
`_apply(x, adjoint=False)`.

### Performance contract

Subclasses should implement a method only if it can be done with a reasonable
performance increase over generic dense operations, either in time, parallel
scalability, or memory usage.  For example, if the determinant can only be
computed using `tf.matrix_determinant(self.to_dense())`, then determinants
should not be implemented.

Class docstrings should contain an explanation of computational complexity.
Since this is a high-performance library, attention should be paid to detail,
and explanations can include constants as well as Big-O notation.

### Shape compatibility

`LinearOperator` sub classes should operate on a [batch] matrix with
compatible shape.  Class docstrings should define what is meant by compatible
shape.  Some sub-classes may not support batching.

An example is:

`x` is a batch matrix with compatible shape for `apply` if

```
operator.shape = [B1,...,Bb] + [M, N],  b >= 0,
x.shape =   [B1,...,Bb] + [N, R]
```

`rhs` is a batch matrix with compatible shape for `solve` if

```
operator.shape = [B1,...,Bb] + [M, N],  b >= 0,
rhs.shape =   [B1,...,Bb] + [M, R]
```

### Example docstring for subclasses.

This operator acts like a (batch) matrix `A` with shape
`[B1,...,Bb, M, N]` for some `b >= 0`.  The first `b` indices index a
batch member.  For every batch index `(i1,...,ib)`, `A[i1,...,ib, : :]` is
an `m x n` matrix.  Again, this matrix `A` may not be materialized, but for
purposes of identifying and working with compatible arguments the shape is
relevant.

Examples:

```python
some_tensor = ... shape = ????
operator = MyLinOp(some_tensor)

operator.shape()
==> [2, 4, 4]

operator.log_determinant()
==> Shape [2] Tensor

x = ... Shape [2, 4, 5] Tensor

operator.apply(x)
==> Shape [2, 4, 5] Tensor
```

### Shape compatibility

This operator acts on batch matrices with compatible shape.
FILL IN WHAT IS MEANT BY COMPATIBLE SHAPE

### Performance

FILL THIS IN
- - -

#### `tf.contrib.linalg.LinearOperator.__init__(dtype, graph_parents=None, is_non_singular=None, is_self_adjoint=None, is_positive_definite=None, name=None)` {#LinearOperator.__init__}

Initialize the `LinearOperator`.

**This is a private method for subclass use.**
**Subclasses should copy-paste this `__init__` documentation.**

For `X = non_singular, self_adjoint` etc...
`is_X` is a Python `bool` initialization argument with the following meaning
* If `is_X == True`, callers should expect the operator to have the
  attribute `X`.  This is a promise that should be fulfilled, but is *not* a
  runtime assert.  Issues, such as floating point error, could mean the
  operator violates this promise.
* If `is_X == False`, callers should expect the operator to not have `X`.
* If `is_X == None` (the default), callers should have no expectation either
  way.

##### Args:

*  <b>`dtype`</b>: The type of the this `LinearOperator`.  Arguments to `apply` and
    `solve` will have to be this type.
*  <b>`graph_parents`</b>: Python list of graph prerequisites of this `LinearOperator`
    Typically tensors that are passed during initialization.
*  <b>`is_non_singular`</b>: Expect that this operator is non-singular.
*  <b>`is_self_adjoint`</b>: Expect that this operator is equal to its hermitian
    transpose.  If `dtype` is real, this is equivalent to being symmetric.
*  <b>`is_positive_definite`</b>: Expect that this operator is positive definite.
*  <b>`name`</b>: A name for this `LinearOperator`. Default: subclass name.

##### Raises:

*  <b>`ValueError`</b>: if any member of graph_parents is `None` or not a `Tensor`.

- - -

#### `tf.contrib.linalg.LinearOperator.apply(x, adjoint=False, name='apply')` {#LinearOperator.apply}

Transform `x` with left multiplication:  `x --> Ax`.

##### Args:

*  <b>`x`</b>: `Tensor` with compatible shape and same `dtype` as `self`.
    See class docstring for definition of compatibility.
*  <b>`adjoint`</b>: Python `bool`.  If `True`, left multiply by the adjoint.
*  <b>`name`</b>: A name for this `Op.

##### Returns:

  A `Tensor` with shape `[..., M, R]` and same `dtype` as `self`.

- - -

#### `tf.contrib.linalg.LinearOperator.assert_non_singular(name='assert_non_singular')` {#LinearOperator.assert_non_singular}

Returns an `Op` that asserts this operator is non singular.

- - -

#### `tf.contrib.linalg.LinearOperator.assert_positive_definite(name='assert_positive_definite')` {#LinearOperator.assert_positive_definite}

Returns an `Op` that asserts this operator is positive definite.

- - -

#### `tf.contrib.linalg.LinearOperator.batch_shape` {#LinearOperator.batch_shape}

`TensorShape` of batch dimensions of this `LinearOperator`.

If this operator acts like the batch matrix `A` with
`A.shape = [B1,...,Bb, M, N]`, then this returns
`TensorShape([B1,...,Bb])`, equivalent to `A.get_shape()[:-2]`

##### Returns:

  `TensorShape`, statically determined, may be undefined.

- - -

#### `tf.contrib.linalg.LinearOperator.batch_shape_dynamic(name='batch_shape_dynamic')` {#LinearOperator.batch_shape_dynamic}

Shape of batch dimensions of this operator, determined at runtime.

If this operator acts like the batch matrix `A` with
`A.shape = [B1,...,Bb, M, N]`, then this returns a `Tensor` holding
`[B1,...,Bb]`.

##### Args:

*  <b>`name`</b>: A name for this `Op.

##### Returns:

  `int32` `Tensor`

- - -

#### `tf.contrib.linalg.LinearOperator.determinant(name='det')` {#LinearOperator.determinant}

Determinant for every batch member.

##### Args:

*  <b>`name`</b>: A name for this `Op.

##### Returns:

  `Tensor` with shape `self.batch_shape` and same `dtype` as `self`.

- - -

#### `tf.contrib.linalg.LinearOperator.domain_dimension` {#LinearOperator.domain_dimension}

Dimension (in the sense of vector spaces) of the domain of this operator.

If this operator acts like the batch matrix `A` with
`A.shape = [B1,...,Bb, M, N]`, then this returns `N`.

##### Returns:

  Python integer if vector space dimension can be determined statically,
    otherwise `None`.

- - -

#### `tf.contrib.linalg.LinearOperator.domain_dimension_dynamic(name='domain_dimension_dynamic')` {#LinearOperator.domain_dimension_dynamic}

Dimension (in the sense of vector spaces) of the domain of this operator.

Determined at runtime.

If this operator acts like the batch matrix `A` with
`A.shape = [B1,...,Bb, M, N]`, then this returns `N`.

##### Args:

*  <b>`name`</b>: A name for this `Op`.

##### Returns:

  `int32` `Tensor`

- - -

#### `tf.contrib.linalg.LinearOperator.dtype` {#LinearOperator.dtype}

The `DType` of `Tensor`s handled by this `LinearOperator`.

- - -

#### `tf.contrib.linalg.LinearOperator.graph_parents` {#LinearOperator.graph_parents}

List of graph dependencies of this `LinearOperator`.

- - -

#### `tf.contrib.linalg.LinearOperator.is_non_singular` {#LinearOperator.is_non_singular}

- - -

#### `tf.contrib.linalg.LinearOperator.is_positive_definite` {#LinearOperator.is_positive_definite}

- - -

#### `tf.contrib.linalg.LinearOperator.is_self_adjoint` {#LinearOperator.is_self_adjoint}

- - -

#### `tf.contrib.linalg.LinearOperator.log_abs_determinant(name='log_abs_det')` {#LinearOperator.log_abs_determinant}

Log absolute value of determinant for every batch member.

##### Args:

*  <b>`name`</b>: A name for this `Op.

##### Returns:

  `Tensor` with shape `self.batch_shape` and same `dtype` as `self`.

- - -

#### `tf.contrib.linalg.LinearOperator.name` {#LinearOperator.name}

Name prepended to all ops created by this `LinearOperator`.

- - -

#### `tf.contrib.linalg.LinearOperator.range_dimension` {#LinearOperator.range_dimension}

Dimension (in the sense of vector spaces) of the range of this operator.

If this operator acts like the batch matrix `A` with
`A.shape = [B1,...,Bb, M, N]`, then this returns `M`.

##### Returns:

  Python integer if vector space dimension can be determined statically,
    otherwise `None`.

- - -

#### `tf.contrib.linalg.LinearOperator.range_dimension_dynamic(name='range_dimension_dynamic')` {#LinearOperator.range_dimension_dynamic}

Dimension (in the sense of vector spaces) of the range of this operator.

Determined at runtime.

If this operator acts like the batch matrix `A` with
`A.shape = [B1,...,Bb, M, N]`, then this returns `M`.

##### Args:

*  <b>`name`</b>: A name for this `Op`.

##### Returns:

  `int32` `Tensor`

- - -

#### `tf.contrib.linalg.LinearOperator.shape` {#LinearOperator.shape}

`TensorShape` of this `LinearOperator`.

If this operator acts like the batch matrix `A` with
`A.shape = [B1,...,Bb, M, N]`, then this returns
`TensorShape([B1,...,Bb, M, N])`, equivalent to `A.get_shape()`.

##### Returns:

  `TensorShape`, statically determined, may be undefined.

- - -

#### `tf.contrib.linalg.LinearOperator.shape_dynamic(name='shape_dynamic')` {#LinearOperator.shape_dynamic}

Shape of this `LinearOperator`, determined at runtime.

If this operator acts like the batch matrix `A` with
`A.shape = [B1,...,Bb, M, N]`, then this returns a `Tensor` holding
`[B1,...,Bb, M, N]`, equivalent to `tf.shape(A)`.

##### Args:

*  <b>`name`</b>: A name for this `Op.

##### Returns:

  `int32` `Tensor`

- - -

#### `tf.contrib.linalg.LinearOperator.solve(rhs, adjoint=False, name='solve')` {#LinearOperator.solve}

Solve `R` (batch) systems of equations exactly: `A X = rhs`.

Examples:

```python
# Create an operator acting like a 10 x 2 x 2 matrix.
operator = LinearOperator(...)
operator.shape # = 10 x 2 x 2

# Solve one linear system (R = 1) for every member of the length 10 batch.
RHS = ... # shape 10 x 2 x 1
X = operator.solve(RHS)  # shape 10 x 2 x 1

# Solve five linear systems (R = 5) for every member of the length 10 batch.
RHS = ... # shape 10 x 2 x 5
X = operator.solve(RHS)
X[3, :, 2]  # Solution to the linear system A[3, :, :] X = RHS[3, :, 2]
```

##### Args:

*  <b>`rhs`</b>: `Tensor` with same `dtype` as this operator and compatible shape.
    See class docstring for definition of compatibility.
*  <b>`adjoint`</b>: Python `bool`.  If `True`, solve the system involving the adjoint
    of this `LinearOperator`.
*  <b>`name`</b>: A name scope to use for ops added by this method.

##### Returns:

  `Tensor` with shape `[...,N, R]` and same `dtype` as `rhs`.

##### Raises:

*  <b>`ValueError`</b>: If self.is_non_singular is False.

- - -

#### `tf.contrib.linalg.LinearOperator.tensor_rank` {#LinearOperator.tensor_rank}

Rank (in the sense of tensors) of matrix corresponding to this operator.

If this operator acts like the batch matrix `A` with
`A.shape = [B1,...,Bb, M, N]`, then this returns `b + 2`.

##### Args:

*  <b>`name`</b>: A name for this `Op.

##### Returns:

  Python integer, or None if the tensor rank is undefined.

- - -

#### `tf.contrib.linalg.LinearOperator.tensor_rank_dynamic(name='tensor_rank_dynamic')` {#LinearOperator.tensor_rank_dynamic}

Rank (in the sense of tensors) of matrix corresponding to this operator.

If this operator acts like the batch matrix `A` with
`A.shape = [B1,...,Bb, M, N]`, then this returns `b + 2`.

##### Args:

*  <b>`name`</b>: A name for this `Op.

##### Returns:

  `int32` `Tensor`, determined at runtime.

- - -

#### `tf.contrib.linalg.LinearOperator.to_dense(name='to_dense')` {#LinearOperator.to_dense}

Return a dense (batch) matrix representing this operator.


text:
* **discord:** allow DMs ([b34d95f](https://github.com/YappyBots/YappyGitLab/commit/b34d95f32a22abf6e4260ef6ec64a8a00ddb4ac0))
* **discord: commands:** data: don't spam, send in DMs ([5de6989](https://github.com/YappyBots/YappyGitLab/commit/5de6989c47cd40b800d46c9c02728292ef9782cc))
* **web:** allow events with no branches ([da428d0](https://github.com/YappyBots/YappyGitLab/commit/da428d07fc45b4453f264c900231cbc5495f348f))
* **web:** oh i used something not supported whoops ([3c2b05f](https://github.com/YappyBots/YappyGitLab/commit/3c2b05ff264a38dd12f6ef31db2d4d9f24c5d310))

# [1.9.0](https://github.com/YappyBots/YappyGitLab/compare/v1.8.3...v1.9.0-dev) (2020-04-08)

* Discord.js v12 update

### Bug Fixes

* **web:** update web code for discord v12 ([d58b62b](https://github.com/YappyBots/YappyGitLab/commit/d58b62b96f9958aba96de75b9ddc96f8bb0cebff))

### Features

* **discord: commands:** add 'data' administrator commands for insight on bot data usage ([2ea2be1](https://github.com/YappyBots/YappyGitLab/commit/2ea2be1f6540d715e8b75b2fc661356d7cb29cf4))

## [1.8.3](https://github.com/YappyBots/YappyGitLab/compare/v1.8.2...v1.8.3) (2020-03-24)

### Bug Fixes

* **discord: commands:** conf: prevent adding empty name events to filter list ([1dc4515](https://github.com/YappyBots/YappyGitLab/commit/1dc451594df9903753a1f5db5a9272169720e234))
* **discord: commands:** init: fix code error if no repo provided ([ec5d48a](https://github.com/YappyBots/YappyGitLab/commit/ec5d48aab5297b2d70786d99896c2e0f84bedfb6))
* **gitlab:** fix errors thrown when checking repo existance & not including all subgroups ([d5c8547](https://github.com/YappyBots/YappyGitLab/commit/d5c8547e27bf0ba5d9e624081f4d50c7b4cc21e1))
* **gitlab:** fix only URLs working ([54020b3](https://github.com/YappyBots/YappyGitLab/commit/54020b32819256414a2ec852b9ec200b7efac151))
* **gitlab:** parser: fix using wrong capture group ([a2ee421](https://github.com/YappyBots/YappyGitLab/commit/a2ee42103dbb53b00bd9633123cb2ff0fa346e8f))
* **gitlab:** replace url parser again with custom one for gitlab groups ([1a44dfc](https://github.com/YappyBots/YappyGitLab/commit/1a44dfc8b71a4389517a29b9a9cf6f88ed0bf358))
* remove mongoose require ([818e789](https://github.com/YappyBots/YappyGitLab/commit/818e7890899af77bfb30fd27af542f5f690cae20))

## [1.8.2](https://github.com/YappyBots/YappyGitLab/compare/v1.8.1...v1.8.2) (2019-12-04)

### Bug Fixes

* **discord:** do not exit on disconnect ([53f4a47](https://github.com/YappyBots/YappyGitLab/commit/53f4a473e6e03a3f7d995a0f3b792586531cb32e))

## [1.8.1](https://github.com/YappyBots/YappyGitLab/compare/v1.8.0...v1.8.1) (2019-12-04)

### Bug Fixes

* **discord: commands:** init: show usage if repo not provided ([89df14f](https://github.com/YappyBots/YappyGitLab/commit/89df14fa512a2b169c481d3a49ea7bcd40563116))
* **discord: commands:** invite: fix error when running ([1da955f](https://github.com/YappyBots/YappyGitLab/commit/1da955f637e4d76553b02603b2bdef67d1d64e4c))
* **models:** fix errors thrown when model doesn't exist in db ([d9673d0](https://github.com/YappyBots/YappyGitLab/commit/d9673d08d713f907d46c6693bb391453fc7def46))
* **npm:** remove snyk mentions from npm scripts to fix deploy script ([01890da](https://github.com/YappyBots/YappyGitLab/commit/01890dadaa846b08ec3b6230d60178c54a4e1633))

# [1.8.0](https://github.com/YappyBots/YappyGitLab/compare/v1.7.2...v1.8.0) (2019-11-28)

### Bug Fixes

* **db:** add 'job' event to automatically ignored (not styled yet) ([2dc511f](https://github.com/YappyBots/YappyGitLab/commit/2dc511f4d10077ea6ef3cf40db0eb5a8c3bf7b8b))
* **db:** fix initialization using nonexistent 'has' method ([c985e68](https://github.com/YappyBots/YappyGitLab/commit/c985e68c2454510cfc64c51af08a9a2bcc515a21))
* **db:** update yappy addons package name and passing models ([10976c4](https://github.com/YappyBots/YappyGitLab/commit/10976c47817236f01389e9b37d67000ede4eb70d))
* **dependencies:** add punycode ([20ffbe8](https://github.com/YappyBots/YappyGitLab/commit/20ffbe88c229f144af7bd43cbb176c5b43fcad6b))
* **discord:** restart on disconnect ([405172a](https://github.com/YappyBots/YappyGitLab/commit/405172ab05c34b846a9c65a61b5f8ef8b457f4a9))
* **discord: commands:** conf: don't check if event exists ([507ad6d](https://github.com/YappyBots/YappyGitLab/commit/507ad6d01fc001f197a53258a294e47fcdc5318c))
* **discord: commands:** conf: fix Action.DISABLE not working (was falsy value) ([c013c5d](https://github.com/YappyBots/YappyGitLab/commit/c013c5d7e02e6bfaac98ee5d20838280f8aac3b3))
* **discord: commands:** ping: update code for latest djs ([4534588](https://github.com/YappyBots/YappyGitLab/commit/4534588b57453cd16921eba8b5ae0f16270e978a))
* **github:** allow job events, improve url parser ([34ef9ec](https://github.com/YappyBots/YappyGitLab/commit/34ef9ec39a8fa4f9e6c5ab22df35696bc71ae1ac)), closes [#43](https://github.com/YappyBots/YappyGitLab/issues/43) [#29](https://github.com/YappyBots/YappyGitLab/issues/29) [#52](https://github.com/YappyBots/YappyGitLab/issues/52)

### Features

* **discord: commands:** init: add support for IDN ([#36](https://github.com/YappyBots/YappyGitLab/issues/36)) ([7f811ed](https://github.com/YappyBots/YappyGitLab/commit/7f811ed4378b23ec38965c6910d7441d800e7849))

### Performance Improvements

* **db:** cache guild prefixes ([9d9e41d](https://github.com/YappyBots/YappyGitLab/commit/9d9e41d9393b635f0c9fc3e1d93eb856a66f4bcf))
* **db:** switch to sqlite, add whitelist/blacklist system to conf ([cffdb35](https://github.com/YappyBots/YappyGitLab/commit/cffdb3594bfc0d034ab6f0c1d5b92b70368b11dc))

## [1.7.1](https://github.com/YappyBots/YappyGitLab/compare/v1.7.0...v1.7.1) (2018-07-18)

# [1.7.0](https://github.com/YappyBots/YappyGitLab/compare/v1.6.1...v1.7.0) (2018-07-18)

### Features

* **gitlab: events:** merge_request/approved and merge_request/unapproved ([#34](https://github.com/YappyBots/YappyGitLab/issues/34)) ([01bf76e](https://github.com/YappyBots/YappyGitLab/commit/01bf76e))

## [1.6.1](https://github.com/YappyBots/YappyGitLab/compare/v1.6.0...v1.6.1) (2018-07-16)

### Bug Fixes

* **models: channelconfig:** fix collection using deprecated find method ([7f29fb5](https://github.com/YappyBots/YappyGitLab/commit/7f29fb5))
* **moduls: channelconfig:** make sure a string isn't split by character onto array ([4a86d74](https://github.com/YappyBots/YappyGitLab/commit/4a86d74))

# [1.6.0](https://github.com/YappyBots/YappyGitLab/compare/v1.5.7...v1.6.0) (2018-07-09)

### Features

* **discord: commands:** add `conf events [view|list|ignore|disable|enable|unignore] [event]` ([3c88665](https://github.com/YappyBots/YappyGitLab/commit/3c88665))

## [1.5.7](https://github.com/YappyBots/YappyGitLab/compare/v1.5.6...v1.5.7) (2018-06-27)

### Bug Fixes

* **gitlab: events:** fix event handler getting property from undefined ([9b9b94a](https://github.com/YappyBots/YappyGitLab/commit/9b9b94a))

## [1.5.5](https://github.com/YappyBots/YappyGitLab/compare/v1.5.4...v1.5.5) (2018-06-25)

### Bug Fixes

* **discord: commands:** conf: fix syntax error °_° ([ab16b27](https://github.com/YappyBots/YappyGitLab/commit/ab16b27))

## [1.5.4](https://github.com/YappyBots/YappyGitLab/compare/v1.5.3...v1.5.4) (2018-06-25)

### Bug Fixes

* **discord: commands:** conf: fix arg containing `-g` being ignored even if not global ([52271a9](https://github.com/YappyBots/YappyGitLab/commit/52271a9))

## [1.5.3](https://github.com/YappyBots/YappyGitLab/compare/v1.5.2...v1.5.3) (2018-06-25)

### Bug Fixes

* **discord: commands:** fix `-g` included in the argument name being interpreted as global ([0a10ef5](https://github.com/YappyBots/YappyGitLab/commit/0a10ef5))

## [1.5.2](https://github.com/YappyBots/YappyGitLab/compare/v1.5.1...v1.5.2) (2018-06-19)

### Bug Fixes

* **discord: commands:** init/remove: fix showing 'false' if embeds are enabled ([9796079](https://github.com/YappyBots/YappyGitLab/commit/9796079))
* **gitlab:** parser: fix double backslash if no subgroup ([67f7cbc](https://github.com/YappyBots/YappyGitLab/commit/67f7cbc))

## [1.5.1](https://github.com/YappyBots/YappyGitLab/compare/v1.5.0...v1.5.1) (2018-06-17)

### Bug Fixes

* **gitlab:** parser: include subgroup(s) in full repo name ([9263b1f](https://github.com/YappyBots/YappyGitLab/commit/9263b1f))

# [1.5.0](https://github.com/YappyBots/YappyGitLab/compare/v1.4.2...v1.5.0) (2018-06-17)

### Bug Fixes

* **dependencies:** update discordjs/discord.js to latest master ([0198e1e](https://github.com/YappyBots/YappyGitLab/commit/0198e1e))
* **discord: commands:** fix initorg using project name instead of path ([6934709](https://github.com/YappyBots/YappyGitLab/commit/6934709))
* **discord: commands:** include private repos in initorg ([a1c2bcb](https://github.com/YappyBots/YappyGitLab/commit/a1c2bcb))
* **discord: commands:** initorg: fix `e` undefined ([568cad0](https://github.com/YappyBots/YappyGitLab/commit/568cad0))
* **discord: commands:** initorg: fix success message error ([ff03906](https://github.com/YappyBots/YappyGitLab/commit/ff03906))
* **discord: commands:** update texts with 'github' to 'gitlab' ([5053987](https://github.com/YappyBots/YappyGitLab/commit/5053987))
* **gitlab:** move embed description limit into handler parser ([e5e7155](https://github.com/YappyBots/YappyGitLab/commit/e5e7155))
* **gitlab:** rework regex parser to accept more url variations ([e85d845](https://github.com/YappyBots/YappyGitLab/commit/e85d845))
* **gitlab: events:** merge_request/merge: fix error if merge commit sha is undefined ([2ec858a](https://github.com/YappyBots/YappyGitLab/commit/2ec858a)), closes [#26](https://github.com/YappyBots/YappyGitLab/issues/26)
* **gitlab: events:** wiki_page/create: fix error in text mode ([7e79df6](https://github.com/YappyBots/YappyGitLab/commit/7e79df6))
* **log:** remove binding of #message in Log ([e132410](https://github.com/YappyBots/YappyGitLab/commit/e132410))
* **models: channelconfig:** don't add channel config if it's missing a value ([d4e8522](https://github.com/YappyBots/YappyGitLab/commit/d4e8522))
* **web:** fix error if an error occurs when generating eventResponse ([8c4e633](https://github.com/YappyBots/YappyGitLab/commit/8c4e633)), closes [#27](https://github.com/YappyBots/YappyGitLab/issues/27)
* **web:** fix webhooks without action not working... ? ([1246cb4](https://github.com/YappyBots/YappyGitLab/commit/1246cb4)), closes [#31](https://github.com/YappyBots/YappyGitLab/issues/31)
* **web:** increase body limit to 500kb ([02fb01e](https://github.com/YappyBots/YappyGitLab/commit/02fb01e)), closes [#24](https://github.com/YappyBots/YappyGitLab/issues/24)
* **web:** set body limit to 5mb ([1fff9cb](https://github.com/YappyBots/YappyGitLab/commit/1fff9cb))

### Features

* **discord:** use addons command, allows for commands page ([0e53dcd](https://github.com/YappyBots/YappyGitLab/commit/0e53dcd))
* **gitlab: events:** add issue ([#31](https://github.com/YappyBots/YappyGitLab/issues/31)) ([8bfc74f](https://github.com/YappyBots/YappyGitLab/commit/8bfc74f))

### Performance Improvements

* **models: serverconfig:** only save server config into cache for servers where messages are being ([7ca752d](https://github.com/YappyBots/YappyGitLab/commit/7ca752d))

## [1.4.2](https://github.com/YappyBots/YappyGitLab/compare/v1.4.1...v1.4.2) (2018-02-17)

### Bug Fixes

* **gitlab:** fix repo using input and not parsed output ([7797844](https://github.com/YappyBots/YappyGitLab/commit/7797844))
* **gitlab:** rework parser to support .git and multiple organization groups ([eb49c5c](https://github.com/YappyBots/YappyGitLab/commit/eb49c5c))
* **gitlab:** rework parser url to allow urls starting with git@ ([101ab7a](https://github.com/YappyBots/YappyGitLab/commit/101ab7a))

## [1.4.1](https://github.com/YappyBots/YappyGitLab/compare/v1.4.0...v1.4.1) (2018-02-17)

### Bug Fixes

* **dependencies:** update bufferutil, chalk, moment1, snekfetch, snyk, eslint, dotenv ([c274ed7](https://github.com/YappyBots/YappyGitLab/commit/c274ed7))
* **discord:** fix DM's not working ([ab54c6b](https://github.com/YappyBots/YappyGitLab/commit/ab54c6b))
* **models: serverconfig:** don't add server config if guild is unavailable ([d9a20da](https://github.com/YappyBots/YappyGitLab/commit/d9a20da))
* **models: serverconfig:** hopefully fix adding guild that is already in config ([7d87ac9](https://github.com/YappyBots/YappyGitLab/commit/7d87ac9))
* **snyk:** update policy ([b01390c](https://github.com/YappyBots/YappyGitLab/commit/b01390c))

# [1.4.0](https://github.com/YappyBots/YappyGitLab/compare/v1.3.8...v1.4.0) (2017-12-16)

### Bug Fixes

* **models: channelconfig:** maybe fix e.repos not being defined, set e.repos to [] if null ([e927229](https://github.com/YappyBots/YappyGitLab/commit/e927229))

### Features

* **gitlab: events:** add pipeline ([#21](https://github.com/YappyBots/YappyGitLab/issues/21)) ([7e8a790](https://github.com/YappyBots/YappyGitLab/commit/7e8a790))
* **logging:** add discord logging with yappybots-addons ([5c944c7](https://github.com/YappyBots/YappyGitLab/commit/5c944c7))

## [1.3.8](https://github.com/YappyBots/YappyGitLab/compare/v1.3.7...v1.3.8) (2017-10-21)

### Bug Fixes

* **discord: commands:** make reboot require owner ([6bac3d5](https://github.com/YappyBots/YappyGitLab/commit/6bac3d5))

## [1.3.7](https://github.com/YappyBots/YappyGitLab/compare/v1.3.6...v1.3.7) (2017-10-14)

### Bug Fixes

* **discord: commands:** invite - set client id to user ID ([9c72d7d](https://github.com/YappyBots/YappyGitLab/commit/9c72d7d))
* **models:** fix no config found errors by creating config on the spot ([0098d23](https://github.com/YappyBots/YappyGitLab/commit/0098d23))
* **snyk:** fix new vulnerabilities ([17ebc6b](https://github.com/YappyBots/YappyGitLab/commit/17ebc6b))

## [1.3.6](https://github.com/YappyBots/YappyGitLab/compare/v1.3.5...v1.3.6) (2017-10-12)

### Bug Fixes

* **discord: commands:** init - fix allowing multiple inits of same repo ([a2a3fdf](https://github.com/YappyBots/YappyGitLab/commit/a2a3fdf))
* **discord: commands:** update - show "no output" if no NPM stdout ([4644c7e](https://github.com/YappyBots/YappyGitLab/commit/4644c7e))
* **gitlab:** fix something with parser get repo thing ([c62d258](https://github.com/YappyBots/YappyGitLab/commit/c62d258))
* **gitlab:** parser - fix wrong type in repository typedef ([169e91f](https://github.com/YappyBots/YappyGitLab/commit/169e91f))

## [1.3.5](https://github.com/YappyBots/YappyGitLab/compare/v1.3.4...v1.3.5) (2017-10-12)

### Bug Fixes

* **models:** try to keep alive db connection ([6657d0a](https://github.com/YappyBots/YappyGitLab/commit/6657d0a))
* **models: serverconfig:** fix this.delete causing error bc it's #deleteGuild ([d84e0fe](https://github.com/YappyBots/YappyGitLab/commit/d84e0fe))

## [1.3.4](https://github.com/YappyBots/YappyGitLab/compare/v1.3.3...v1.3.4) (2017-10-11)

### Bug Fixes

* **dependencies:** update body-parser, moment, winston, snekfetch, snyk, express, mongoose, jsdoc, e ([b65963d](https://github.com/YappyBots/YappyGitLab/commit/b65963d))
* **discord: commands:** init - explain how to init private repo ([c1afb94](https://github.com/YappyBots/YappyGitLab/commit/c1afb94)), closes [#13](https://github.com/YappyBots/YappyGitLab/issues/13)
* **gitlab:** use regex for parser, support groups ([79f4f27](https://github.com/YappyBots/YappyGitLab/commit/79f4f27)), closes [#14](https://github.com/YappyBots/YappyGitLab/issues/14)
* **gitlab: events:** push - return null if 0 commits, then gets ignored ([d92ab36](https://github.com/YappyBots/YappyGitLab/commit/d92ab36))
* **models:** fix bot not adding new channels/guilds if none in cache ([1c7fd72](https://github.com/YappyBots/YappyGitLab/commit/1c7fd72))
* **web:** fix parsing project namespace, therefore not supporting groups ([c372011](https://github.com/YappyBots/YappyGitLab/commit/c372011))

## [1.3.3](https://github.com/YappyBots/YappyGitLab/compare/v1.3.2...v1.3.3) (2017-09-09)

### Bug Fixes

* **dependencies:** update express, mongoose, jsdoc, body-parser, bugsnag, chalk, snekfetch, snyk, es ([a0b7f12](https://github.com/YappyBots/YappyGitLab/commit/a0b7f12))
* **discord: commands:** fix update - move to NPM and limit stdout to 1000 chars ([78d3df9](https://github.com/YappyBots/YappyGitLab/commit/78d3df9))

## [1.3.2](https://github.com/YappyBots/YappyGitLab/compare/v1.3.1...v1.3.2) (2017-09-09)

### Bug Fixes

* **dependencies:** update dependencies (discord.js#master) ([d86b710](https://github.com/YappyBots/YappyGitLab/commit/d86b710))
* **discord: commands:** change init to use new domain ([ab65fd3](https://github.com/YappyBots/YappyGitLab/commit/ab65fd3))
* **discord: commands:** change initorg to use new domain ([8e106a0](https://github.com/YappyBots/YappyGitLab/commit/8e106a0))
* **discord: commands:** fix clean: change to msg.channel.messages.fetch ([f5810b8](https://github.com/YappyBots/YappyGitLab/commit/f5810b8))
* **discord: modules:** change casual help to use new domain ([e593d37](https://github.com/YappyBots/YappyGitLab/commit/e593d37))
* **web:** fix login button link, removed '/' ([c3e1f1c](https://github.com/YappyBots/YappyGitLab/commit/c3e1f1c))

## [1.3.1](https://github.com/YappyBots/YappyGitLab/compare/v1.3.0...v1.3.1) (2017-08-23)

### Bug Fixes

* **web:** fix url encoded not working ([4822eb9](https://github.com/YappyBots/YappyGitLab/commit/4822eb9))

# [1.3.0](https://github.com/YappyBots/YappyGitLab/compare/v1.2.1...v1.3.0) (2017-07-21)

### Bug Fixes

* **dependencies:** add yappy-bots package from github ([5abf681](https://github.com/YappyBots/YappyGitLab/commit/5abf681))
* **dependencies:** remove unused dependency from package-lock.json ([561aed0](https://github.com/YappyBots/YappyGitLab/commit/561aed0))
* **discord:** fix references to RichEmbed instead of MessageEmbed ([ec3ed4c](https://github.com/YappyBots/YappyGitLab/commit/ec3ed4c))
* **web:** allow repos in groups to work properly ([d290ada](https://github.com/YappyBots/YappyGitLab/commit/d290ada))
* **web:** fix another wrong require path ([6fe24fe](https://github.com/YappyBots/YappyGitLab/commit/6fe24fe))
* **web:** fix some wrong local dendencies paths ([94a308a](https://github.com/YappyBots/YappyGitLab/commit/94a308a))

### Features

* **web):** add basic discord oAuth ([418ebd5](https://github.com/YappyBots/YappyGitLab/commit/418ebd5))

## [1.2.1](https://github.com/YappyBots/YappyGitLab/compare/v1.2.0...v1.2.1) (2017-07-16)

### Bug Fixes

* **gitlab:** fix undef var and comma dangle ([fc0b30b](https://github.com/YappyBots/YappyGitLab/commit/fc0b30b))

# [1.2.0](https://github.com/YappyBots/YappyGitLab/compare/v1.1.2...v1.2.0) (2017-07-16)

### Bug Fixes

* **discord:** fix commands not working in DMs ([8775292](https://github.com/YappyBots/YappyGitLab/commit/8775292))
* **discord:** guild-only commands error in DM and don't show in help now ([8e28ea7](https://github.com/YappyBots/YappyGitLab/commit/8e28ea7))
* **discord: commands:** fix command usage of invite ([1ea56ad](https://github.com/YappyBots/YappyGitLab/commit/1ea56ad))

### Features

* **discord: commands:** add initorg command ([8f48842](https://github.com/YappyBots/YappyGitLab/commit/8f48842))

## [1.1.2](https://github.com/YappyBots/YappyGitLab/compare/v1.1.1...v1.1.2) (2017-07-15)

### Bug Fixes

* **models: channelconfig:** fix ChannelConfig#setChannel setting map w/ undefined property ([35aebc7](https://github.com/YappyBots/YappyGitLab/commit/35aebc7))

## [1.1.1](https://github.com/YappyBots/YappyGitLab/compare/v1.1.0...v1.1.1) (2017-07-13)

### Bug Fixes

* **discord:** remove CHANNEL_CREATE from disabled events ffs ([b656754](https://github.com/YappyBots/YappyGitLab/commit/b656754))
* **gitlab: events:** fix event handler author icon_url erroring ([9c03f81](https://github.com/YappyBots/YappyGitLab/commit/9c03f81))
* **web:** fix disabledEvents looking for event name rather than shortname ([4dac4aa](https://github.com/YappyBots/YappyGitLab/commit/4dac4aa))

# [1.1.0](https://github.com/YappyBots/YappyGitLab/compare/v1.0.3...v1.1.0) (2017-05-22)

### Features

* **gitlab: events:** add ability to ignore branch(es) & user(s) via conf ([6d572c1](https://github.com/YappyBots/YappyGitLab/commit/6d572c1)), closes [#11](https://github.com/YappyBots/YappyGitLab/issues/11) [#12](https://github.com/YappyBots/YappyGitLab/issues/12)

## [1.0.3](https://github.com/YappyBots/YappyGitLab/compare/v1.0.2...v1.0.3) (2017-05-17)

### Bug Fixes

* **discord: commands:** conf: add disabled events config to `GL! conf` ([1254653](https://github.com/YappyBots/YappyGitLab/commit/1254653)), closes [#9](https://github.com/YappyBots/YappyGitLab/issues/9)
* **discord: commands:** conf: show name of property in field view ([6441cc2](https://github.com/YappyBots/YappyGitLab/commit/6441cc2)), closes [#10](https://github.com/YappyBots/YappyGitLab/issues/10)
* **discord: commands:** init: fix command to enable embed in success msg ([4f7ea84](https://github.com/YappyBots/YappyGitLab/commit/4f7ea84)), closes [#8](https://github.com/YappyBots/YappyGitLab/issues/8)

## [1.0.2](https://github.com/YappyBots/YappyGitLab/compare/v1.0.1...v1.0.2) (2017-05-15)

### Bug Fixes

* **models:** hopefully fix duplicating config items on start ([e3a36b1](https://github.com/YappyBots/YappyGitLab/commit/e3a36b1))

## [1.0.1](https://github.com/YappyBots/YappyGitLab/compare/v1.0.0...v1.0.1) (2017-05-14)

### Bug Fixes

* **dependencies:** update mongoose[@4](https://github.com/4).9.9 ([610dfcb](https://github.com/YappyBots/YappyGitLab/commit/610dfcb))
* **snyk:** run `snyk wizard` and fix a few vulnerabilities ([14f7469](https://github.com/YappyBots/YappyGitLab/commit/14f7469))
* **snyk:** run `snyk wizard` once again ([e10173d](https://github.com/YappyBots/YappyGitLab/commit/e10173d))
* **web:** add error handling and log error ([b52f33d](https://github.com/YappyBots/YappyGitLab/commit/b52f33d))
* **web:** fix channels with repo handling, expected `channelId` instead of `channelID` ([5489e09](https://github.com/YappyBots/YappyGitLab/commit/5489e09))

# [1.0.0](https://github.com/YappyBots/YappyGitLab/compare/59ccd5e...v1.0.0) (2017-05-13)

### Bug Fixes

* **models: channelconfig:** remove `prefix` item from .validKeys ([7870590](https://github.com/YappyBots/YappyGitLab/commit/7870590))
* package.json & .snyk to reduce vulnerabilities ([59ccd5e](https://github.com/YappyBots/YappyGitLab/commit/59ccd5e))
* **bot:** fix disconnect error log, now using event.code ([61e8e48](https://github.com/YappyBots/YappyGitLab/commit/61e8e48))
* **dependencies:** add discord.js back ([ec00054](https://github.com/YappyBots/YappyGitLab/commit/ec00054))
* **dependencies:** remove express-handlebars ([ef45337](https://github.com/YappyBots/YappyGitLab/commit/ef45337))
* **dependencies:** update dependencies ([308e38a](https://github.com/YappyBots/YappyGitLab/commit/308e38a))
* **dependencies:** update dependencies ([d79db1e](https://github.com/YappyBots/YappyGitLab/commit/d79db1e))
* **dependencies:** update dependencies ([c3ca9b9](https://github.com/YappyBots/YappyGitLab/commit/c3ca9b9))
* **dependencies:** update djs to master (v12.0.0 dev) ([65d8549](https://github.com/YappyBots/YappyGitLab/commit/65d8549))
* **dependencies:** update djs to v11.1.0 (from repo) ([35bd8e8](https://github.com/YappyBots/YappyGitLab/commit/35bd8e8))
* **discord:** st prefix to ([2638b7e](https://github.com/YappyBots/YappyGitLab/commit/2638b7e))
* **discord: commands:** actually fix stats' embed footer icon_url (was iconURL) ([6c39ac1](https://github.com/YappyBots/YappyGitLab/commit/6c39ac1))
* **discord: commands:** fix color on updating embed ([036978d](https://github.com/YappyBots/YappyGitLab/commit/036978d))
* **discord: commands:** fix conf command interpreting '-' as --global ([ed51c20](https://github.com/YappyBots/YappyGitLab/commit/ed51c20)), closes [#3](https://github.com/YappyBots/YappyGitLab/issues/3)
* **discord: commands:** fix pulling update on `update` command ([034b8a5](https://github.com/YappyBots/YappyGitLab/commit/034b8a5))
* **discord: commands:** fix stats' embed iconURL, and change to use footer ([c7b6d27](https://github.com/YappyBots/YappyGitLab/commit/c7b6d27))
* **discord: modules:** fix casual help module requiring prefix + "yappy" + "gitlab", only prefix now ([a2cbc6c](https://github.com/YappyBots/YappyGitLab/commit/a2cbc6c))
* **eslint:** fix unecessary module required ([0795998](https://github.com/YappyBots/YappyGitLab/commit/0795998))
* **gitlab: events:** fix embed colors by transiforming to 0x###### ([f3c8237](https://github.com/YappyBots/YappyGitLab/commit/f3c8237))
* **help:** add quotes to usage in help for command ([dad6137](https://github.com/YappyBots/YappyGitLab/commit/dad6137))
* **models: channelconfig:** add `pipeline` to default disabledEvents in channelConfigSchema ([fc21636](https://github.com/YappyBots/YappyGitLab/commit/fc21636))
* **models: serverconfig:** fix ServerConfig#add setting Collection with .channelId prop of guild ([ac330b1](https://github.com/YappyBots/YappyGitLab/commit/ac330b1)), closes [#6](https://github.com/YappyBots/YappyGitLab/issues/6)
* **mongoose:** add error handling (logging) ([0ac5f12](https://github.com/YappyBots/YappyGitLab/commit/0ac5f12))

### Features

* **commands:** add issue comamnd to search and get issue info ([82fe8ab](https://github.com/YappyBots/YappyGitLab/commit/82fe8ab))
* **conf:** add ServerConf for prefix configuration ([2d6f20e](https://github.com/YappyBots/YappyGitLab/commit/2d6f20e))
* **dependencies:** add express-handlebars & run snyk wizard ([5172c13](https://github.com/YappyBots/YappyGitLab/commit/5172c13))
* **dependencies:** add hbs ([7dd535a](https://github.com/YappyBots/YappyGitLab/commit/7dd535a))
* **discord: commands:** add `invite` command ([6307b74](https://github.com/YappyBots/YappyGitLab/commit/6307b74))
* **discord: commands:** add merge request command ([df60c39](https://github.com/YappyBots/YappyGitLab/commit/df60c39))
* **discord: commands:** add update command ([d34ab21](https://github.com/YappyBots/YappyGitLab/commit/d34ab21)), closes [#5](https://github.com/YappyBots/YappyGitLab/issues/5)
* **discord: commands:** if issue description contains image, add and send with embed ([17ca650](https://github.com/YappyBots/YappyGitLab/commit/17ca650))
* **discord: commands:** if merge request description contains image, add and send with embed ([edc437e](https://github.com/YappyBots/YappyGitLab/commit/edc437e))
* **discord: commands:** send msg to channel when invite is sent to user in invite commmand ([c0466d5](https://github.com/YappyBots/YappyGitLab/commit/c0466d5))
* **gitlab: events:** add note/issue - fired when someone comments on issue ([13fcf70](https://github.com/YappyBots/YappyGitLab/commit/13fcf70))
* **gitlab: events:** add note/mergerequest - fired when someone comments on merge request ([214389e](https://github.com/YappyBots/YappyGitLab/commit/214389e))
* **gitlab: events:** add note/snippet - fired when someone comments on snippet ([692178b](https://github.com/YappyBots/YappyGitLab/commit/692178b))
* **gitlab: events:** add wiki_page/create - fired when wiki page is created ([de4dd33](https://github.com/YappyBots/YappyGitLab/commit/de4dd33))
* **gitlab: events:** add wiki_page/delete - fired when wiki page is deleted ([37908f7](https://github.com/YappyBots/YappyGitLab/commit/37908f7))
* **gitlab: events:** add wiki_page/update - fired when wiki page is updated ([34870e8](https://github.com/YappyBots/YappyGitLab/commit/34870e8))
* **middleware:** add UnhandledError middleware to handle unhandled errors ([abca414](https://github.com/YappyBots/YappyGitLab/commit/abca414))
* **modules:** add modules for message middlware ([46f2407](https://github.com/YappyBots/YappyGitLab/commit/46f2407))
* **modules:** create module CasualHelp for detecting need of help with ApiAI and responding ([5211eaa](https://github.com/YappyBots/YappyGitLab/commit/5211eaa))
* **web:** add nice-looking landing page with bot stats ([8534bab](https://github.com/YappyBots/YappyGitLab/commit/8534bab))
* **web:** add online status color circle, move screenshot img to right ([577af2c](https://github.com/YappyBots/YappyGitLab/commit/577af2c))

### Performance Improvements

* **bot:** add message sweeping & cache options to decrease mem usage ([93d1900](https://github.com/YappyBots/YappyGitLab/commit/93d1900))
* **command:** remove `async` from init command ([6dcd12c](https://github.com/YappyBots/YappyGitLab/commit/6dcd12c))
* **gitlab: emitting:** only generate event embed & text once per webhook ([4ce70dd](https://github.com/YappyBots/YappyGitLab/commit/4ce70dd))
* **gitlab: events:** update issue/* & note/commit - remove string creation on embed descriptions ([360d7b8](https://github.com/YappyBots/YappyGitLab/commit/360d7b8))


text:
Tideways: Auto-Detect SQL Spans
--SKIPIF--
<?php
if (!extension_loaded('pdo_sqlite')) {
    print "skip: pdo_sqlite not installed\n";
    exit(1);
}
--FILE--
<?php

include_once dirname(__FILE__).'/common.php';

tideways_enable(0, array('slow_php_call_treshold' => 50000000));

$pdo = new PDO('sqlite:memory:', 'root', '');

$pdo->exec("CREATE TABLE baz (id INTEGER)");

$pdo->beginTransaction();

$stmt = $pdo->prepare("SELECT 'foo' FROM 'baz'");
$stmt->execute();

$stmt = $pdo->prepare("INSERT INTO baz (id) VALUES (1)");
$stmt->execute();

$stmt = $pdo->prepare("UPDATE baz SET id = 2 WHERE id = 1");
$stmt->execute();

$stmt = $pdo->prepare("DELETE FROM baz");
$stmt->execute();

$stmt = $pdo->query("SELECT count(*) FROM baz");
$stmt->execute();

$pdo->commit();

print_spans(tideways_get_spans());
tideways_disable();
--EXPECTF--
app: 1 timers -
sql: 1 timers - title=other
sql: 1 timers - title=select 'baz'
sql: 1 timers - title=insert baz
sql: 1 timers - title=update baz
sql: 1 timers - title=delete baz
sql: 2 timers - title=select baz
sql: 1 timers - title=commit


text:
module Azure::ApiManagement::Mgmt::V2018_06_01_preview
  module Models
    #
    # API Authentication Settings.
    #
    class AuthenticationSettingsContract

      include MsRestAzure

      # @return [OAuth2AuthenticationSettingsContract] OAuth2 Authentication
      # settings
      attr_accessor :o_auth2

      # @return [OpenIdAuthenticationSettingsContract] OpenID Connect
      # Authentication Settings
      attr_accessor :openid

      # @return [Boolean] Specifies whether subscription key is required during
      # call to this API, true - API is included into closed products only,
      # false - API is included into open products alone, null - there is a mix
      # of products.
      attr_accessor :subscription_key_required

      #
      # Mapper for AuthenticationSettingsContract class as Ruby Hash.
      # This will be used for serialization/deserialization.
      #
      def self.mapper()
        {
          client_side_validation: true,
          required: false,
          serialized_name: 'AuthenticationSettingsContract',
          type: {
            name: 'Composite',
            class_name: 'AuthenticationSettingsContract',
            model_properties: {
              o_auth2: {
                client_side_validation: true,
                required: false,
                serialized_name: 'oAuth2',
                type: {
                  name: 'Composite',
                  class_name: 'OAuth2AuthenticationSettingsContract'
                }
              },
              openid: {
                client_side_validation: true,
                required: false,
                serialized_name: 'openid',
                type: {
                  name: 'Composite',
                  class_name: 'OpenIdAuthenticationSettingsContract'
                }
              },
              subscription_key_required: {
                client_side_validation: true,
                required: false,
                serialized_name: 'subscriptionKeyRequired',
                type: {
                  name: 'Boolean'
                }
              }
            }
          }
        }
      end
    end
  end
end


text:
<?xml version="1.0" encoding="UTF-8"?>

<rootTag>
  <Award>
    <AwardTitle>CHIRON Planet Search</AwardTitle>
    <AwardEffectiveDate>09/15/2011</AwardEffectiveDate>
    <AwardExpirationDate>08/31/2013</AwardExpirationDate>
    <AwardAmount>445000</AwardAmount>
    <AwardInstrument>
      <Value>Standard Grant</Value>
    </AwardInstrument>
    <Organization>
      03020400
      <Directorate>
        <LongName>Direct For Mathematical & Physical Scien</LongName>
      </Directorate>
      <Division>
        <LongName>Division Of Astronomical Sciences</LongName>
      </Division>
    </Organization>
    <ProgramOfficer>
      <SignBlockName>Maria Womack</SignBlockName>
    </ProgramOfficer>
    <AbstractNarration>Dr. Fischer will use the CHIRON spectrometer on the CTIO 1.5-m telescope to search for exoplanets via the radial velocity technique. She will target 30 bright late-type (G and K dwarf) stars with the goal of achieving 1 m/s measurement precision with new instrumentation after first testing it in a laboratory environment. The PI and her team will also develop a Doppler simulator to help determine the best possible observational precision. <br/><br/>This work will train postdoctoral research associates, graduate and undergraduate students in research and instrumentation. The team will also work on the ?jitter? observational problem, which results from vertical atmospheric motions on small spatial scales, and if solved, would have wide applicability to other fields of astronomy. They will also conduct a hands-on ?Pathways to Science? program for school children, and help the Yale planetarium director develop a new show on exoplanets.</AbstractNarration>
    <MinAmdLetterDate>09/14/2011</MinAmdLetterDate>
    <MaxAmdLetterDate>09/14/2011</MaxAmdLetterDate>
    <ARRAAmount/>
    <AwardID>1109727</AwardID>
    <Investigator>
      <FirstName>Debra</FirstName>
      <LastName>Fischer</LastName>
      <EmailAddress>debra.fischer@yale.edu</EmailAddress>
      <StartDate>09/14/2011</StartDate>
      <EndDate/>
      <RoleCode>Principal Investigator</RoleCode>
    </Investigator>
    <Investigator>
      <FirstName>Jason</FirstName>
      <LastName>Wright</LastName>
      <EmailAddress>jtw13@psu.edu</EmailAddress>
      <StartDate>09/14/2011</StartDate>
      <EndDate/>
      <RoleCode>Co-Principal Investigator</RoleCode>
    </Investigator>
    <Investigator>
      <FirstName>Julien</FirstName>
      <LastName>Spronck</LastName>
      <EmailAddress>Julien.spronck@yale.edu</EmailAddress>
      <StartDate>09/14/2011</StartDate>
      <EndDate/>
      <RoleCode>Co-Principal Investigator</RoleCode>
    </Investigator>
    <Institution>
      <Name>Yale University</Name>
      <CityName>New Haven</CityName>
      <ZipCode>065208327</ZipCode>
      <PhoneNumber>2037854689</PhoneNumber>
      <StreetAddress>Office of Sponsored Projects</StreetAddress>
      <CountryName>United States</CountryName>
      <StateName>Connecticut</StateName>
      <StateCode>CT</StateCode>
    </Institution>
    <ProgramElement>
      1215
      <Text>STELLAR ASTRONOMY & ASTROPHYSC</Text>
    </ProgramElement>
    <ProgramReference>
      1207
      <Text>OBSERVATIONAL ASTRONOMY</Text>
    </ProgramReference>
  </Award>
</rootTag>


text:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using FluentAssertions;
using MarkdownWeb.PostFilters;
using MarkdownWeb.Storage.Files;
using NSubstitute;
using Xunit;

namespace MarkdownWeb.Tests
{
    public class GithubIssues
    {

        [Fact]
        public void Issue1_dont_screw_up_the_page_when_using_tables()
        {
            var pageSource = Substitute.For<IPageSource>();
            pageSource.PageExists(Arg.Any<PageReference>()).Returns(true);
            var markdown = @"
### Liste des paquets Nuget pour IvFragment Secondaire N3.

Nom | Version | Descriptions
--- | ------- | ------------
N3_IVFragment_Secondaire_MVC5 | 1.2.1 | Utilitaires pour les fragments secondaire

### N3 IvFragment Secondaire MVC5

>Ce paquet Nuget intégrera les fichiers utilitaires requis pour aider à convertir une section d'application .NET MVC en fragment secondaire.
Quelques modifications seront exécutées dans le fichier de config pour installer le filtre N3 pour le fragment secondaire.

![image](https://cloud.githubusercontent.com/assets/10774173/5977134/0b3bfc66-a863-11e4-805b-a55f218f3b41.png)

The result code is like below; it is missing a th closing tag and merge the rest of the document in the table.
";
            var pathConverter = new UrlConverter("/", pageSource);
            var repository = new FileBasedRepository(Environment.CurrentDirectory);

            var sut = new PageService(repository, pathConverter);
            sut.Configuration.PostFilters.Add(new AnchorHeadings());
            var actual = sut.ParseString(new PageReference("/", "/index.md"), markdown);

            actual.Body.Should().Contain("
N3 IvFragment Secondaire MVC5
");
            var posTable = actual.Body.IndexOf("
");
            var h3 = actual.Body.IndexOf("<h3 id=\"n3-ivfragment-secondaire-mvc5");
            posTable.Should().BeLessThan(h3);
        }

        [Fact]
        public void Work_with_The_onetrueerror_page()
        {
            var pageSource = Substitute.For<IPageSource>();
            pageSource.PageExists(Arg.Any<PageReference>()).Returns(true);
            var pathConverter = new UrlConverter("/", pageSource);
            var repository = new FileBasedRepository(Environment.CurrentDirectory);

            #region markdown
            var markdown = @"Reporting
============

There are two ways of reporting exceptions with OneTrueError.

# One-line reporting

To report errors you simply invoke our library in the catch clause:

```csharp
try
{
    // some logic
}
catch (Exception ex)
{
    OneTrue.Report(ex);
}
```

The error will now be stored on disk and reported as soon as possible. The disk storage allows us
to be able to upload reports if there is connectivity issues or if you recycle the IIS application pool.

# Providing context information

In MVC5 you typically work with view models. These models can be invaluable when trying to figure out why an exception was thrown. With our library you can easily include the view model.

```csharp
public ActionResult Save(AccountViewModel model)
{
    try
    {
        // some logic
    }
    catch (Exception ex)
    {
        OneTrue.Report(ex, model);
    }
}
```

# Providing additional information

We support anonymous objects, so if you need to provide additional information you simply create a new
anonymous object:

 ```csharp
public ActionResult Save(AccountViewModel model)
{
    try
    {
        // some logic
        var partialResult = _service.ProcessSomething();
        // more business logic
    }
    catch (Exception ex)
    {
        OneTrue.Report(ex, new {
            ViewModel = model,
            PartialResult = partialResult
        });
    }
}
```";
            #endregion

            var parser = new PageService(repository, pathConverter);
            var actual = parser.ParseString(new PageReference("/", "/index.md"), markdown);

        }

    }
}


text:
package cf.thehivedsu.olms.auth;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import cf.thehivedsu.olms.URLConstants;
import cf.thehivedsu.olms.bean.RequestBean;
import cf.thehivedsu.olms.bean.SessionBean;

/**
 * Servlet implementation class DashboardServlet
 */
@WebServlet(asyncSupported = true, urlPatterns = { "/dashboard/*" })
public class DashboardServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public DashboardServlet() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String redirectURL = URLConstants.SIGNIN;

		HttpSession session = request.getSession();
		SessionBean sessionBean = (SessionBean) session.getAttribute("sessionBean");
		int employeeId = sessionBean.getEmployeeID();

		if (employeeId == 0) {
			redirectURL = URLConstants.ADMIN_PORTAL;
		} else if (employeeId > 0) {
			RequestBean requestBean = (RequestBean) request.getAttribute("requestBean");
			if (requestBean.isManager()) {
				redirectURL = URLConstants.MANAGER_PORTAL;
			} else {
				redirectURL = URLConstants.EMPLOYEE_PORTAL;
			}
		}

		if (redirectURL != URLConstants.SIGNIN) {
			redirectURL = request.getRequestURI().replaceFirst("^/dashboard", redirectURL).replaceAll("//", "/");
		}

		response.sendRedirect(redirectURL);
	}

}


text:
using System;
using Crownwood.Magic.Docking;
using Crownwood.Magic.Collections;

namespace Crownwood.Magic.Collections
{
    public class WindowCollection : CollectionWithEvents
    {
        public Window Add(Window value)
        {
            // Use base class to process actual collection operation
            base.List.Add(value as object);

            return value;
        }

        public void AddRange(Window[] values)
        {
            // Use existing method to add each array entry
            foreach(Window page in values)
                Add(page);
        }

        public void Remove(Window value)
        {
            // Use base class to process actual collection operation
            base.List.Remove(value as object);
        }

        public void Insert(int index, Window value)
        {
            // Use base class to process actual collection operation
            base.List.Insert(index, value as object);
        }

        public bool Contains(Window value)
        {
            // Use base class to process actual collection operation
            return base.List.Contains(value as object);
        }

        public Window this[int index]
        {
            // Use base class to process actual collection operation
            get { return (base.List[index] as Window); }
        }

        public int IndexOf(Window value)
        {
            // Find the 0 based index of the requested entry
            return base.List.IndexOf(value);
        }
    }
}


text:
package org.jf.baksmali.Adaptors.Debug;

import org.jf.baksmali.Adaptors.ReferenceFormatter;
import org.jf.util.IndentingWriter;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.io.IOException;

public class LocalFormatter {
    /**
     * Writes out the given local info
     *
     * The written string will be something like:
     *
     * "localVar":Ljava/lang/String;, "SomeSignature"
     * "localVar":Ljava/lang/String;
     * "localVar":V, "SomeSignature"
     * null:Ljava/lang/String;, "SomeSignature"
     * null:V, "SomeSignature"
     *
     * One of name, type or signature must be non-null
     */
    public static void writeLocal(@Nonnull IndentingWriter writer, @Nullable String name, @Nullable String type,
                                  @Nullable String signature) throws IOException {
        if (name != null) {
            ReferenceFormatter.writeStringReference(writer, name);
        } else {
            writer.write("null");
        }
        writer.write(':');
        if (type != null) {
            writer.write(type);
        } else {
            writer.write("V");
        }
        if (signature != null) {
            writer.write(", ");
            ReferenceFormatter.writeStringReference(writer, signature);
        }
    }
}


text:
module Azure::Relay::Mgmt::V2017_04_01
  module Models
    #
    # Description of the WCF relay resource.
    #
    class WcfRelay < Resource

      include MsRestAzure

      # @return [Boolean] Returns true if the relay is dynamic; otherwise,
      # false.
      attr_accessor :is_dynamic

      # @return [DateTime] The time the WCF relay was created.
      attr_accessor :created_at

      # @return [DateTime] The time the namespace was updated.
      attr_accessor :updated_at

      # @return [Integer] The number of listeners for this relay. Note that min
      # :1 and max:25 are supported.
      attr_accessor :listener_count

      # @return [Relaytype] WCF relay type. Possible values include: 'NetTcp',
      # 'Http'
      attr_accessor :relay_type

      # @return [Boolean] Returns true if client authorization is needed for
      # this relay; otherwise, false.
      attr_accessor :requires_client_authorization

      # @return [Boolean] Returns true if transport security is needed for this
      # relay; otherwise, false.
      attr_accessor :requires_transport_security

      # @return [String] The usermetadata is a placeholder to store
      # user-defined string data for the WCF Relay endpoint. For example, it
      # can be used to store descriptive data, such as list of teams and their
      # contact information. Also, user-defined configuration settings can be
      # stored.
      attr_accessor :user_metadata

      #
      # Mapper for WcfRelay class as Ruby Hash.
      # This will be used for serialization/deserialization.
      #
      def self.mapper()
        {
          client_side_validation: true,
          required: false,
          serialized_name: 'WcfRelay',
          type: {
            name: 'Composite',
            class_name: 'WcfRelay',
            model_properties: {
              id: {
                client_side_validation: true,
                required: false,
                read_only: true,
                serialized_name: 'id',
                type: {
                  name: 'String'
                }
              },
              name: {
                client_side_validation: true,
                required: false,
                read_only: true,
                serialized_name: 'name',
                type: {
                  name: 'String'
                }
              },
              type: {
                client_side_validation: true,
                required: false,
                read_only: true,
                serialized_name: 'type',
                type: {
                  name: 'String'
                }
              },
              is_dynamic: {
                client_side_validation: true,
                required: false,
                read_only: true,
                serialized_name: 'properties.isDynamic',
                type: {
                  name: 'Boolean'
                }
              },
              created_at: {
                client_side_validation: true,
                required: false,
                read_only: true,
                serialized_name: 'properties.createdAt',
                type: {
                  name: 'DateTime'
                }
              },
              updated_at: {
                client_side_validation: true,
                required: false,
                read_only: true,
                serialized_name: 'properties.updatedAt',
                type: {
                  name: 'DateTime'
                }
              },
              listener_count: {
                client_side_validation: true,
                required: false,
                read_only: true,
                serialized_name: 'properties.listenerCount',
                constraints: {
                  InclusiveMaximum: 25,
                  InclusiveMinimum: 0
                },
                type: {
                  name: 'Number'
                }
              },
              relay_type: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.relayType',
                type: {
                  name: 'Enum',
                  module: 'Relaytype'
                }
              },
              requires_client_authorization: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.requiresClientAuthorization',
                type: {
                  name: 'Boolean'
                }
              },
              requires_transport_security: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.requiresTransportSecurity',
                type: {
                  name: 'Boolean'
                }
              },
              user_metadata: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.userMetadata',
                type: {
                  name: 'String'
                }
              }
            }
          }
        }
      end
    end
  end
end


text:
package com.amazonaws.services.devicefarm.model.transform;

import java.util.Map;
import java.util.List;

import com.amazonaws.AmazonClientException;
import com.amazonaws.services.devicefarm.model.*;
import com.amazonaws.transform.Marshaller;
import com.amazonaws.util.BinaryUtils;
import com.amazonaws.util.StringUtils;
import com.amazonaws.util.IdempotentUtils;
import com.amazonaws.util.StringInputStream;
import com.amazonaws.protocol.json.*;

/**
 * CPUMarshaller
 */
public class CPUJsonMarshaller {

    /**
     * Marshall the given parameter object, and output to a SdkJsonGenerator
     */
    public void marshall(CPU cPU, StructuredJsonGenerator jsonGenerator) {

        if (cPU == null) {
            throw new AmazonClientException(
                    "Invalid argument passed to marshall(...)");
        }

        try {
            jsonGenerator.writeStartObject();

            if (cPU.getFrequency() != null) {
                jsonGenerator.writeFieldName("frequency").writeValue(
                        cPU.getFrequency());
            }
            if (cPU.getArchitecture() != null) {
                jsonGenerator.writeFieldName("architecture").writeValue(
                        cPU.getArchitecture());
            }
            if (cPU.getClock() != null) {
                jsonGenerator.writeFieldName("clock")
                        .writeValue(cPU.getClock());
            }

            jsonGenerator.writeEndObject();
        } catch (Throwable t) {
            throw new AmazonClientException(
                    "Unable to marshall request to JSON: " + t.getMessage(), t);
        }
    }

    private static CPUJsonMarshaller instance;

    public static CPUJsonMarshaller getInstance() {
        if (instance == null)
            instance = new CPUJsonMarshaller();
        return instance;
    }

}


text:
import React from 'react';
import createSvgIcon from './utils/createSvgIcon';

export default createSvgIcon(
  <React.Fragment><path d="M2.01 21L23 12 2.01 3 2 10l15 2-15 2z" /><path fill="none" d="M0 0h24v24H0z" /></React.Fragment>
, 'Send');


text:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Xunit;

namespace Rezolver.Tests
{
	public class TargetContainer_AliasTests
    {
		[Fact]
		public void ShouldRegisterAlias()
		{
			TargetContainer targets = new TargetContainer();
			targets.RegisterAlias<object, string>();
			Assert.NotNull(targets.Fetch(typeof(object)));
		}
	}
}


text:
package bg.bga.android.agent.units.select_login;

import com.bolyartech.forge.android.app_unit.MultiOperationResidentComponent;
import com.bolyartech.forge.base.exchange.forge.ForgeExchangeManagerListener;

/**
 * Created by ogre on 2016-01-06 21:10
 */
public interface ResSelectLogin extends MultiOperationResidentComponent<ResSelectLogin.Operation>,
        ForgeExchangeManagerListener {

    void checkFbLogin(String token);

    void checkGoogleLogin(String token);

    enum Operation {
        FACEBOOK_LOGIN,
        GOOGLE_LOGIN
    }
}


text:
package org.apache.activemq.artemis.utils;

import java.net.URL;
import java.util.Properties;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.lang.invoke.MethodHandles;

/**
 * This class will be used to perform generic class-loader operations,
 * such as load a class first using TCCL, and then the classLoader used by ActiveMQ Artemis (ClassloadingUtil.getClass().getClassLoader()).
 * <p>
 * Is't required to use a Security Block on any calls to this class.
 */

public final class ClassloadingUtil {

   private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());

   private static final String INSTANTIATION_EXCEPTION_MESSAGE = "Your class must have a constructor without arguments. If it is an inner class, it must be static!";

   public static Object newInstanceFromClassLoader(final String className) {
      return newInstanceFromClassLoader(ClassloadingUtil.class, className);
   }

   public static Object newInstanceFromClassLoader(final Class<?> classOwner, final String className) {
      ClassLoader loader = classOwner.getClassLoader();
      try {
         Class<?> clazz = loader.loadClass(className);
         return clazz.newInstance();
      } catch (Throwable t) {
         if (t instanceof InstantiationException) {
            System.out.println(INSTANTIATION_EXCEPTION_MESSAGE);
         }
         loader = Thread.currentThread().getContextClassLoader();
         if (loader == null)
            throw new RuntimeException("No local context classloader", t);

         try {
            return loader.loadClass(className).newInstance();
         } catch (InstantiationException e) {
            throw new RuntimeException(INSTANTIATION_EXCEPTION_MESSAGE + " " + className, e);
         } catch (ClassNotFoundException e) {
            throw new IllegalStateException(e);
         } catch (IllegalAccessException e) {
            throw new RuntimeException(e);
         }
      }
   }

   public static Object newInstanceFromClassLoader(final String className, Object... objs) {
      return newInstanceFromClassLoader(ClassloadingUtil.class, className, objs);
   }

   public static Object newInstanceFromClassLoader(final Class<?> classOwner, final String className, Object... objs) {
      ClassLoader loader = classOwner.getClassLoader();
      try {
         Class<?>[] parametersType = new Class<?>[objs.length];
         for (int i = 0; i < objs.length; i++) {
            parametersType[i] = objs[i].getClass();
         }
         Class<?> clazz = loader.loadClass(className);
         return clazz.getConstructor(parametersType).newInstance(objs);
      } catch (Throwable t) {
         if (t instanceof InstantiationException) {
            System.out.println(INSTANTIATION_EXCEPTION_MESSAGE);
         }
         loader = Thread.currentThread().getContextClassLoader();
         if (loader == null)
            throw new RuntimeException("No local context classloader", t);

         try {
            return loader.loadClass(className).newInstance();
         } catch (InstantiationException e) {
            throw new RuntimeException(INSTANTIATION_EXCEPTION_MESSAGE + " " + className, e);
         } catch (ClassNotFoundException e) {
            throw new IllegalStateException(e);
         } catch (IllegalAccessException e) {
            throw new RuntimeException(e);
         }
      }
   }

   public static URL findResource(final String resourceName) {
      return findResource(ClassloadingUtil.class.getClassLoader(), resourceName);
   }

   public static URL findResource(ClassLoader loader, final String resourceName) {
      try {
         URL resource = loader.getResource(resourceName);
         if (resource != null)
            return resource;
      } catch (Throwable t) {
      }

      loader = Thread.currentThread().getContextClassLoader();
      if (loader == null)
         return null;

      return loader.getResource(resourceName);
   }

   public static String loadProperty(ClassLoader loader, String propertiesFile, String name) {
      Properties properties = loadProperties(loader, propertiesFile);

      return (String)properties.get(name);
   }

   public static Properties loadProperties(String propertiesFile) {
      return loadProperties(ClassloadingUtil.class.getClassLoader(), propertiesFile);
   }

   public static Properties loadProperties(ClassLoader loader, String propertiesFile) {
      Properties properties = new Properties();

      try {
         URL url = findResource(loader, propertiesFile);
         if (url != null) {
            properties.load(url.openStream());
         }
      } catch (Throwable ignored) {
         logger.warn(ignored.getMessage(), ignored);
      }
      return properties;
   }

}


text:
package org.jmotor.util.exception;

/**
 * Component:
 * Description:
 * Date: 12-11-6
 *
 * @author Andy.Ai
 */
public class SqlGenerateException extends RuntimeException {
    public SqlGenerateException(String message) {
        super(message);
    }

    public SqlGenerateException(Throwable cause) {
        super(cause);
    }

    public SqlGenerateException(String message, Throwable cause) {
        super(message, cause);
    }
}


text:
namespace geofeatures_boost {} namespace boost = geofeatures_boost; namespace geofeatures_boost { namespace geometry
{

#ifndef DOXYGEN_NO_DETAIL
namespace detail { namespace disjoint
{

struct reverse_covered_by
{
    template <typename Geometry1, typename Geometry2>
    static inline
    bool apply(Geometry1 const& geometry1, Geometry2 const& geometry2)
    {
        return ! geometry::covered_by(geometry1, geometry2);
    }
};

}} // namespace detail::disjoint
#endif // DOXYGEN_NO_DETAIL

#ifndef DOXYGEN_NO_DISPATCH
namespace dispatch
{

template<typename Point, typename Linear, std::size_t DimensionCount>
struct disjoint<Point, Linear, DimensionCount, point_tag, linear_tag, false>
    : detail::disjoint::reverse_covered_by
{};

template <typename Point, typename Areal, std::size_t DimensionCount>
struct disjoint<Point, Areal, DimensionCount, point_tag, areal_tag, false>
    : detail::disjoint::reverse_covered_by
{};

template<typename Point, typename Segment, std::size_t DimensionCount>
struct disjoint<Point, Segment, DimensionCount, point_tag, segment_tag, false>
    : detail::disjoint::reverse_covered_by
{};

} // namespace dispatch
#endif // DOXYGEN_NO_DISPATCH

}} // namespace geofeatures_boost::geometry

#endif // BOOST_GEOMETRY_ALGORITHMS_DETAIL_DISJOINT_POINT_GEOMETRY_HPP


text:
using System;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;

using Google.Apis.Logging;
using Google.Apis.Util;

#if NET45
using TaskEx = System.Threading.Tasks.Task;
#endif

namespace Google.Apis.Http
{
    ///
    /// A thread-safe back-off handler which handles an abnormal HTTP response or an exception with
    /// <see cref="Google.Apis.Util.IBackOff"/>.
    ///
    public class BackOffHandler : IHttpUnsuccessfulResponseHandler, IHttpExceptionHandler
    {
        private static readonly ILogger Logger = ApplicationContext.Logger.ForType<BackOffHandler>();

        /// An initializer class to initialize a back-off handler.
        public class Initializer
        {
            /// Gets the back-off policy used by this back-off handler.
            public IBackOff BackOff { get; private set; }

            ///
            /// Gets or sets the maximum time span to wait. If the back-off instance returns a greater time span than
            /// this value, this handler returns <c>false</c> to both <c>HandleExceptionAsync</c> and
            /// <c>HandleResponseAsync</c>. Default value is 16 seconds per a retry request.
            ///
            public TimeSpan MaxTimeSpan { get; set; }

            ///
            /// Gets or sets a delegate function which indicates whether this back-off handler should handle an
            /// abnormal HTTP response. The default is <see cref="DefaultHandleUnsuccessfulResponseFunc"/>.
            ///
            public Func<HttpResponseMessage, bool> HandleUnsuccessfulResponseFunc { get; set; }

            ///
            /// Gets or sets a delegate function which indicates whether this back-off handler should handle an
            /// exception. The default is <see cref="DefaultHandleExceptionFunc"/>.
            ///
            public Func<Exception, bool> HandleExceptionFunc { get; set; }

            /// Default function which handles server errors (503).
            public static readonly Func<HttpResponseMessage, bool> DefaultHandleUnsuccessfulResponseFunc =
                (r) => (int)r.StatusCode == 503;

            ///
            /// Default function which handles exception which aren't
            /// <see cref="System.Threading.Tasks.TaskCanceledException"/> or
            /// <see cref="System.OperationCanceledException"/>. Those exceptions represent a task or an operation
            /// which was canceled and shouldn't be retried.
            ///
            public static readonly Func<Exception, bool> DefaultHandleExceptionFunc =
                (ex) => !(ex is TaskCanceledException || ex is OperationCanceledException);

            /// Constructs a new initializer by the given back-off.
            public Initializer(IBackOff backOff)
            {
                BackOff = backOff;
                HandleExceptionFunc = DefaultHandleExceptionFunc;
                HandleUnsuccessfulResponseFunc = DefaultHandleUnsuccessfulResponseFunc;
                MaxTimeSpan = TimeSpan.FromSeconds(16);
            }
        }

        /// Gets the back-off policy used by this back-off handler.
        public IBackOff BackOff { get; private set; }

        ///
        /// Gets the maximum time span to wait. If the back-off instance returns a greater time span, the handle method
        /// returns <c>false</c>. Default value is 16 seconds per a retry request.
        ///
        public TimeSpan MaxTimeSpan { get; private set; }

        ///
        /// Gets a delegate function which indicates whether this back-off handler should handle an abnormal HTTP
        /// response. The default is <see cref="Initializer.DefaultHandleUnsuccessfulResponseFunc"/>.
        ///
        public Func<HttpResponseMessage, bool> HandleUnsuccessfulResponseFunc { get; private set; }

        ///
        /// Gets a delegate function which indicates whether this back-off handler should handle an exception. The
        /// default is <see cref="Initializer.DefaultHandleExceptionFunc"/>.
        ///
        public Func<Exception, bool> HandleExceptionFunc { get; private set; }

        /// Constructs a new back-off handler with the given back-off.
        /// <param name="backOff">The back-off policy.</param>
        public BackOffHandler(IBackOff backOff)
            : this(new Initializer(backOff))
        {
        }

        /// Constructs a new back-off handler with the given initializer.
        public BackOffHandler(Initializer initializer)
        {
            BackOff = initializer.BackOff;
            MaxTimeSpan = initializer.MaxTimeSpan;
            HandleExceptionFunc = initializer.HandleExceptionFunc;
            HandleUnsuccessfulResponseFunc = initializer.HandleUnsuccessfulResponseFunc;
        }

        #region IHttpUnsuccessfulResponseHandler

        public virtual async Task<bool> HandleResponseAsync(HandleUnsuccessfulResponseArgs args)
        {
            // if the func returns true try to handle this current failed try
            if (HandleUnsuccessfulResponseFunc != null && HandleUnsuccessfulResponseFunc(args.Response))
            {
                return await HandleAsync(args.SupportsRetry, args.CurrentFailedTry, args.CancellationToken)
                    .ConfigureAwait(false);
            }
            return false;
        }

        #endregion

        #region IHttpExceptionHandler

        public virtual async Task<bool> HandleExceptionAsync(HandleExceptionArgs args)
        {
            // if the func returns true try to handle this current failed try
            if (HandleExceptionFunc != null && HandleExceptionFunc(args.Exception))
            {
                return await HandleAsync(args.SupportsRetry, args.CurrentFailedTry, args.CancellationToken)
                    .ConfigureAwait(false);
            }
            return false;
        }

        #endregion

        ///
        /// Handles back-off. In case the request doesn't support retry or the back-off time span is greater than the
        /// maximum time span allowed for a request, the handler returns <c>false</c>. Otherwise the current thread
        /// will block for x milliseconds (x is defined by the <see cref="BackOff"/> instance), and this handler
        /// returns <c>true</c>.
        ///
        private async Task<bool> HandleAsync(bool supportsRetry, int currentFailedTry,
            CancellationToken cancellationToken)
        {
            if (!supportsRetry || BackOff.MaxNumOfRetries < currentFailedTry)
            {
                return false;
            }

            TimeSpan ts = BackOff.GetNextBackOff(currentFailedTry);
            if (ts > MaxTimeSpan || ts < TimeSpan.Zero)
            {
                return false;
            }

            await Wait(ts, cancellationToken).ConfigureAwait(false);
            Logger.Debug("Back-Off handled the error. Waited {0}ms before next retry...", ts.TotalMilliseconds);
            return true;
        }

        /// Waits the given time span. Overriding this method is recommended for mocking purposes.
        /// <param name="ts">TimeSpan to wait (and block the current thread).</param>
        /// <param name="cancellationToken">The cancellation token in case the user wants to cancel the operation in
        /// the middle.</param>
        protected virtual async Task Wait(TimeSpan ts, CancellationToken cancellationToken)
        {
            await TaskEx.Delay(ts, cancellationToken).ConfigureAwait(false);
        }
    }
}


text:
<configuration>

  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <!-- encoders are assigned the type
         ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

  <logger name="org.camunda" level="info" />

  <root level="INFO">
    <appender-ref ref="STDOUT" />
  </root>

</configuration>


text:
package br.edu.ifpb.nutrif.dao;

import java.util.List;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import br.edu.ifpb.nutrif.exception.SQLExceptionNutrIF;
import br.edu.ladoss.entity.Login;
import br.edu.ladoss.entity.Logout;

public class LogoutDAO extends GenericDao<Integer, Logout> {

	private static Logger logger = LogManager.getLogger(LogoutDAO.class);

	private static LogoutDAO instance;

	public static LogoutDAO getInstance() {
		instance = new LogoutDAO();
		return instance;
	}

	@Override
	public List<Logout> getAll() throws SQLExceptionNutrIF {
		return super.getAll("Logout.getAll");
	}

	@Override
	public Class<?> getEntityClass() {
		return Login.class;
	}

	@Override
	public Logout find(Logout entity) throws SQLExceptionNutrIF {
		// TODO Auto-generated method stub
		return null;
	}
}


text:
<?xml version="1.0"?>
<qualifications class="WRF99">
  <qualification id="WRF20199" title="Certificate II in Floristry">
    <units/>
  </qualification>
  <qualification id="WRF30199" title="Certificate III in Floristry">
    <units/>
  </qualification>
  <qualification id="WRF40199" title="Certificate IV in Floristry (Small Business Management)">
    <units/>
  </qualification>
</qualifications>


text:
package net.caseif.voxem.event.human;

import net.caseif.voxem.entity.living.player.Human;
import net.caseif.voxem.event.Event;

public class HumanEvent extends Event {

    protected Human entity;

    public Human getEntity() {
        return entity;
    }

    public void setEntity(Human entity) {
        this.entity = entity;
    }

}